5 条题解
-
0
避免数位排序的方法:桶排。
#include <cstdio> #include <cstring> int digit[10]; int process(int m){ memset(digit, 0, sizeof(digit)); ++ digit[m / 1000]; ++ digit[(m % 1000) / 100]; ++ digit[(m % 100) / 10]; ++ digit[m % 10]; int big = 0, small = 0, timer = 1; for(int i = 0; i <= 9; ++ i){ while(digit[i]){ big += i * timer; small += i * 1000 / timer; timer *= 10; -- digit[i]; } } return big - small; } int main(){ int n, i; int num, cnt = 0; scanf("%d", &n); for(i = 1; i <= n; ++ i){ scanf("%d", &num); while(num != 6174){ num = process(num); ++ cnt; } printf("%d\n", cnt + 1); cnt = 0; } }
信息
- ID
- 140
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 819
- 已通过
- 250
- 上传者