样例输入#
2 1990 1111
样例输出#
5 0
分离整数与合并
AC代码
#include<stdio.h>
//判断四个数码是否相等
int Judge(int n){
int flag=1;
int g=n%10,s=n/10%10,b=n/100%10,q=n/1000;
if(g==s&&g==b&&g==q)flag=0;
return flag;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
int cnt=0;
while(Judge(n)){
int i,j=0,t,a[5]={};
while(n){
a[j]=n%10;
n/=10;
j++;
}
for(i=0;i<3;i++){
for(j=i+1;j<4;j++){
//从小到大排
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
int up=0,down=0;
for(i=0;i<4;i++){
up*=10;
up+=a[i];
}
for(i=3;i>=0;i--){
down*=10;
down+=a[i];
}
cnt++;
int sum=down+up,k=0;
while(sum){
a[k]=sum%10;
sum/=10;
k++;
}
n=0;
for(i=3;i>=0;i--){
n*=10;
n+=a[i];
}
}
printf("%d\n",cnt);
}
}