假设有数字不同的四位数为a,将他们按数字的大小排序拍好的四位数为b,求b-a并输出,直到他们出现循环
#include<stdio.h>
#include<string.h>
int getnext(int x)
{
int a,b,n,i,j;
char s[10],t;
sprintf(s,"%d",x);
n=strlen(s);
for( i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
printf("%s",s);
sscanf(s,"%d",&b);
for(i=0;i<n/2;i++)
{t=s[i]; s[i]=s[n-1-i];s[n-i-1]=t;}
sscanf(s,"%d",&a);
return a-b;
}
int num[2000],count=0;
int main()
{
int flage=1,i;
scanf("%d",&num[0]);
printf("%d",num[0]);
while(flage)
{
count++;
num[count]=getnext(num[count-1]);
printf("->%d",num[count]);
for(i=0;i<count;i++)
if(num[count]==num[i])
{ flage=0;break;}
}
return 0;
}