#include
#include
#define N 10000
int yms[10000][3],cnt,visit[10];//cnt用于记录个数
int cheak(int a,int b)
{
int c,i;
c=a+b;
if(c>10000)
return 0;
memset(visit,0,sizeof(visit));
while(a)
{
if(visit[a%10])
return 0;
visit[a%10]=1;
a=a/10;
}
while(b)
{
if(visit[b%10])
return 0;
visit[b%10]=1;
b=b/10;
}
while(c)
{
if(visit[c%10])
return 0;
visit[c%10]=1;
c=c/10;
}
for(i=0;i<10;i++)
if(visit[i]==0)
return 0;
return 1;
}
int fun()
{
int a,b;
cnt=0;
for(a=10;a<=99;a++)
for(b=100;b<=9999;b++)
{
if(cheak(a,b))
{
yms[cnt][0]=a;
yms[cnt][1]=b;
yms[cnt][2]=a+b;
cnt++;
}
}
for(a=100;a<=999;a++)
for(b=100;b<=9999;b++)
{
if(cheak(a,b))
{
yms[cnt][0]=a;
yms[cnt][1]=b;
yms[cnt][2]=a+b;
cnt++;
}
}
return cnt;
}
void print()
{
int i;
for(i=0;i
{
printf("%d+%d=%d\n",yms[i][0],yms[i][1],yms[i][2]);
}
}
int main()
{
fun();
print();
return 0;
}
取消
评论