该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*问题描述:从0-9中任意选取4个不完全相同的数
比如,不能是5 5 5 5,可以是1 2 2 2
用这4个数排列出最大的数,2221,最小的数1222
最大减最小:2221-1222=0999
用0 9 9 9这四个数继续重复上述步骤
最多7步,将得到6174这个数字
编程证明*/
#include
void main()
{
int w1,w2,w3,w4,a,b,c,d,max[4],x,y,z,i,j,t,count,flag=0;
for(w1=0;w1<=9;w1++)
for(w2=0;w2<=9;w2++)
for(w3=0;w3<=9;w3++)
for(w4=0;w4<=9;w4++)
{a=w1;b=w2;c=w3;c=w4;
count=0;
X: if(a==b==c==d) continue;
else
{max[0]=a;max[1]=b;max[2]=c;max[3]=d;}
for(j=0;j<3;j++)
for(i=0;i<3-j;i++)
if(max[i]
{t=max[i];max[i]=max[i+1];max[i+1]=t;}
x=1000*max[0]+100*max[1]+10*max[2]+max[3];
y=max[0]+10*max[1]+100*max[2]+1000*max[3];
z=x-y;
count++;
if(count>7) {flag=1;break;}
if(z!=6174)
{a=z/1000;b=z%1000/100;c=z%100/10;d=z%10;
goto X;}
}
if(flag==0) printf("Good!Right!\n");
if(flag==1) printf("Sorry!Wrong!\n");
}
/*使用3个不完全相同的数字,也有一个现象,不断运算得到495,最多6步*/
/*上面的是自己做的*/
【C语言】交流群70465991[高级群]
【C语言】交流群70465991[高级群]
【C语言】交流群70465991[高级群]
【C语言】交流群70465991[高级群]