欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > GESP2023年9月认证C++二级( 第三部分编程题(2)数字黑洞)

GESP2023年9月认证C++二级( 第三部分编程题(2)数字黑洞)

2025/8/11 20:56:45 来源:https://blog.csdn.net/weixin_60445850/article/details/148496550  浏览:    关键词:GESP2023年9月认证C++二级( 第三部分编程题(2)数字黑洞)

参考程序:

#include <iostream>  // 引入输入输出库
using namespace std;int main() {int n = 0;cin >> n;  // 读入一个三位数// 无限循环,直到结果为 495for (int t = 0; ; t++) {  // t 是操作次数计数器if (n == 495) {cout << t << endl;  // 输出次数后退出程序break;}// 拆分三位数的各位:百位、十位、个位int m0 = n % 10;         // 个位int m1 = n / 10 % 10;    // 十位int m2 = n / 100;        // 百位int tmax = 0, tmin = 0;// 构造最大值和最小值// 通过比较三个数字的大小关系来进行全排列构造if (m0 >= m1 && m1 >= m2) {tmax = m0 * 100 + m1 * 10 + m2;tmin = m2 * 100 + m1 * 10 + m0;} else if (m0 >= m2 && m2 >= m1) {tmax = m0 * 100 + m2 * 10 + m1;tmin = m1 * 100 + m2 * 10 + m0;} else if (m1 >= m0 && m0 >= m2) {tmax = m1 * 100 + m0 * 10 + m2;tmin = m2 * 100 + m0 * 10 + m1;} else if (m1 >= m2 && m2 >= m0) {tmax = m1 * 100 + m2 * 10 + m0;tmin = m0 * 100 + m2 * 10 + m1;} else if (m2 >= m0 && m0 >= m1) {tmax = m2 * 100 + m0 * 10 + m1;tmin = m1 * 100 + m0 * 10 + m2;} else {  // m2 >= m1 && m1 >= m0tmax = m2 * 100 + m1 * 10 + m0;tmin = m0 * 100 + m1 * 10 + m2;}// 更新 n 为差值n = tmax - tmin;}return 0;
}

参考程序(sort+vector):

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int n, t = 0;cin >> n;while (n != 495) {vector<int> digits = {n / 100, (n / 10) % 10, n % 10};sort(digits.begin(), digits.end());int tmin = digits[0] * 100 + digits[1] * 10 + digits[2];int tmax = digits[2] * 100 + digits[1] * 10 + digits[0];n = tmax - tmin;t++;}cout << t << endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词