古堡算式

 
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。

 

/*暴力求解法*/
#include <stdio.h>
int main(void)
{
    int x,y,k;
    for(x=10000;x<100000;x++)  /*五位数*/
    {
        int a=x/10000;
        int b=x%10000/1000;
        int c=x%1000/100;
        int d=x%100/10;
        int e=x%10;                         /*提取出各位*/
        if(a==b || a==c || a==d || a==e || b==c || b==d || b==e
                        || c==d || c==e || d==e)      /*各位不相同*/
        continue;
        y = e * 10000 + d * 1000 + c * 100 + b * 10 + a;
        for(k=1;k<10;k++)
        if(x*k==y)
        printf("%d*%d=%d\n",x,k,y);
    }
    return 0;
}

 

#include<stdio.h>
void main(){
	int k,t1 ,t;
	for(k=10234;k<=98765;k++)     /*各位不相同的五位数最小为10234,*/
	{
		int flag[10]={0};
		t=k;
		t1=0;
		while(t)
		{
			if(flag[t%10])
				break ;
			flag[t%10] = 1 ;
			t1 = t1*10 + t%10 ;
			t /= 10 ;
		}
		if( t==0 && t1%k==0)
		{
			printf("%d * %d = %d\n",k,t1/k,t1);
		}
	}
}

 

你可能感兴趣的:(蓝桥杯,古堡算式)