关于计算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);
}
}
}
}
}
}
}
}
}










