关于计算ABCDE*F=EDCBA的方法 有没有更好的办法啊 我的代码虽然能计算出正确的结果 感觉有些笨重呢
程序代码:
#include<stdio.h> int main() { int i,j,k,tmp1,tmp2,in1,in2; int t1[5]={0,0,0,0,0}; int t2[5]={0,0,0,0,0}; for(i=10000;i<99999;i++) { for(j=2;j<10;j++) { k=i*j; if(k>99999) continue; tmp1=i; tmp2=k; in1=0; in2=0; //对乘数进行拆解 例如把12345拆解成1,2,3,4,5 while(tmp1>0) { t1[in1]=tmp1%10; tmp1/=10; in1++; } //对乘积进行拆解 例如把12345拆解成1,2,3,4,5 while(tmp2>0) { t2[in2]=tmp2%10; tmp2/=10; in2++; } if(t1[0]==t2[4] && t1[1]==t2[3] && t1[2]==t2[2] && t1[3]==t2[1] && t1[4]==t2[0]) { if(t1[0]!=t1[1] && t1[0]!=t1[2] && t1[0]!=t1[3] && t1[0]!=t1[4] && t1[0]!=j) { if(t1[1]!=t1[2] && t1[1]!=t1[3] && t1[1]!=t1[4] && t1[1]!=j) { if(t1[2]!=t1[3] && t1[2]!=t1[4] && t1[2]!=j) { if(t1[3]!=t1[4] && t1[3]!=j) { if(t1[4]!=j) { printf("%d*%d=%d\n",i,j,k); } } } } } } } } }