用0,1,2,……,9这十个数字组成一个加法竖式,每个数字只能用一次且全部使用!C语言编译!

如题所述

#include<stdio.h>

int main()

{

int a,b,c,d,e,f,g,h,i,j,arr[10]={0},n=0;

g=1;arr[1]=1;

for(a=5;a<10;a++)

{arr[a]=1;

for(b=0;b<10;b++)

if(!arr[b])

{arr[b]=1;

  for(c=0;c<10;c++)

if(!arr[c])

{arr[c]=1;

for(d=a+1;d<10;d++)

if(!arr[d])

{arr[d]=1;

 for(e=0;e<10;e++)

if(!arr[e])

{arr[e]=1;

     for(f=0;f<10;f++)

if(!arr[f])

{arr[f]=1;

     for(h=0;h<10;h++)

if(!arr[h])

{arr[h]=1;

     for(i=0;i<10;i++)

if(!arr[i])

{arr[i]=1;

j=45-a-b-c-d-e-f-g-h-i;

if(j<10&&100*a+10*b+c+100*d+10*e+f==1000+100*h+10*i+j)

{n++;

printf("  %d%d%d\n+)%d%d%d\n-----\n %d%d%d%d\n\n",a,b,c,d,e,f,g,h,i,j);

}

 arr[i]=0;

}

 arr[h]=0;

}

 arr[f]=0;

}

 arr[e]=0;

}

 arr[d]=0;

}

 arr[c]=0;

}

 arr[b]=0;

}

 arr[a]=0;

}

printf("Total=%d\n",n);

getch();

return 0;

}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网