蓝桥杯--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
",ans,s);
	system("pause");
	return 0;
}

原文地址:https://www.cnblogs.com/playboy307/p/5273404.html