
#include<stdio.h>
#include<string.h>
int xd(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return (a[0]*1000+a[1]*100+a[2]*10+a[3]);
}
int dx(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j] < a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return (a[0]*1000+a[1]*100+a[2]*10+a[3]);
}
void showarr(int num,int a[])
{
for(int j=0;j<4;j++)
{
a[j] = 0;
}
int x;
for(x = 0;num / 10 != 0;x++)
{
a[x] = num%10;
num /= 10;
}
a[x] = num;
}
int circle(int num)
{
int count = 1;
int temp = num;
int a[4];
showarr(num,a);
num = dx(a,4) - xd(a,4);
if(temp == num) return 1;
while(temp != num)
{
temp = num;
showarr(num,a);
num = dx(a,4) - xd(a,4);
count++;
}
return count;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a;
scanf("%d",&a);
printf("%d\n",circle(a));
}
}
347

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



