南阳oj 6174问题

#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int f1(int n)
{
int a[4];
a[0]=n/1000;
a[1]=n/100%10;
a[2]=n%100/10;
a[3]=n%10;
sort(a,a+4);
int ans=a[3]*1000+a[2]*100+a[1]*10+a[0];
return ans;
}
int f2(int n)
{
int a[4];
a[0]=n/1000;
a[1]=n/100%10;
a[2]=n%100/10;
a[3]=n%10;
sort(a,a+4);
int ans=a[0]*1000+a[1]*100+a[2]*10+a[3];
return ans;
}
int main ()
{
int t;
cin>>t;
while(t--)
{
int n;
int count=1;
cin>>n;
int a=f1(n);
int b=f2(n);
while(n!=(a-b))
{
n=a-b;
a=f1(n);
b=f2(n);
count++;
}
cout<<count<<endl;
}
return 0;
}

写两个函数分别求升序和降序排列的数,然后做差,循环,比较

用sort()函数进行排序

猜你喜欢

转载自www.cnblogs.com/huanya/p/9361670.html