//此题比较简单,只是要注意细节,如不是四位的一定要输出No,注意NO和OK都是首字母大写,后面是小写,这个搞得我wa了一次。
#include<iostream>
#include<algorithm>
using namespace std;
int Do(int m)
{
int a[10],i,j,p,q,cnt=0;
while(m)
{
a[cnt++]=m%10;
m/=10;
}
sort(a,a+cnt);
p=a[0];q=a[cnt-1];
for(i=1;i<cnt;i++)
{
p=p*10+a[i];
}
for(j=cnt-2;j>=0;j--)
{
q=q*10+a[j];
}
printf("%d-%d=%d/n",q,p,q-p);
return q-p;
}
int main()
{
int n,m,a,b,c,d,cnt;
while(1)
{
cnt=0;
scanf("%d",&n);
if(n==-1)
break;
m=n;
a=m%10;m/=10;
b=m%10;m/=10;
c=m%10;m/=10;
d=m%10;
printf("N=%d:/n",n);
if(a==b&&b==c&&c==d||n>=10000||n<=999)
{
printf("No!!/n");
}
else
{
while(1)
{
cnt++;
n=Do(n);
if(n==6174||n==0)
break;
}
printf("Ok!! %d times/n",cnt);
}
}
return 0;
}
472

被折叠的 条评论
为什么被折叠?



