解题思路:
没啥好说的,它讲什么,我们做什么。变换成最大最小值我这里的做法是把它变成字符串然后 sort 在返
回数字,当 num 有前导零的时候增加 10 倍即可。
参考代码:
#include<iostream> #include<algorithm> #include<cstring> using namespace std; bool compare(int a, int b) { return a > b; } int Max(int num) { char numc[5]; int max; sprintf(numc, "%d", num); sort(numc, numc + strlen(numc), compare); sscanf(numc, "%d", &max); return max; } int Min(int num) { char numc[5]; int min; sprintf(numc, "%d", num); sort(numc, numc + strlen(numc)); sscanf(numc, "%d", &min); return min; } int main() { int num, max, min, total = 0; cin >> num; while (num != 6174) { if (num < 1000) num *= 10; max = Max(num); min = Min(num); num = max - min; total++; } cout << total; return 0; }
0.0分
0 人评分
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:705 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:1084 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:512 |
WU-格式化数据输出 (C语言代码)浏览:1818 |
母牛的故事 (C语言代码)浏览:1046 |
Tom数 (C语言代码)浏览:758 |
1035 题解浏览:875 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
1197求助浏览:669 |