蓝桥杯--2012--古堡算式(暴力)
二、古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
ABCDE每个字母表示一个数字,题目的意思就是一个五位数乘以一个1--9之间的数字,然后答案是他的回文数,
什么都不要管,暴力走起
#include<cstdio> #include<cstdlib> #include<cstring> int ans; int main() { bool flag=false; int s=0; for(int i=1;i<=9;i++) { for(int j=0;j<=9;j++) { for(int k=0;k<=9;k++) { for(int l=0;l<=9;l++) { for(int m=0;m<=9;m++) { if(i==j||i==k||i==l||i==m ||j==k||j==l||j==m ||k==l||k==m||l==m) continue; int p=i*10000+j*1000+k*100+l*10+m; int q=m*10000+l*1000+k*100+j*10+i; for(int num=1;num<=9;num++) { if(p*num==q) { ans=p; flag=true; s=num; break; } } if(flag) break; } if(flag) break; } if(flag) break; } if(flag) break; } if(flag) break; } printf("%d %d\n",ans,s); system("pause"); return 0; }