5 条题解
-
1
#include <stdio.h> int paixu(int num); int paixiao(int num); int main() { int n; scanf("%d",&n); while(n--) { int cum=0; int num,a,b; scanf("%d",&num); while(1) { b=paixu(num); a=paixiao(num); if(a-b==num) { cum++; printf("%d\n",cum); break; } num=a-b; cum++; }
} return 0;
} int paixu(int num) { int a[10]; int cont=0,total=1; while(num>0) { a[cont++]=num%10; num/=10; } for(int i=0;i<cont;i++) { for(int j=0;j<cont-1;j++) { int temp; if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;//从小到大排序 } } } for(int i=0;i<cont;i++) { total=total10+a[i]; } return total; } int paixiao(int num) { int a[10]; int cont=0,total=1; while(num>0) { a[cont++]=num%10; num/=10; } for(int i=0;i<cont;i++) { for(int j=0;j<cont-1;j++) { int temp; if(a[j]<a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;//从大到小排序 } } } for(int i=0;i<cont;i++) { total=total10+a[i]; } return total; }
信息
- ID
- 140
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 819
- 已通过
- 250
- 上传者