样例输入#
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);}
}