酷代码 AI
菜单
服务商

C++ 实现四位数变换到 6174 的过程及步数统计

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <algorithm> using namespace std; // 该函数用于将数字重新组合成最大的数和最小的数相减 int subtract(int num) { int digits[4]; // 将数字的每一位存入数组 for (int i = 0; i < 4; i++) { digits[i] = num % 10; num /= 10; } // 对数组进行排序,得到最小数 sort(digits, digits + 4); int min_num = digits[0] * 1000 + digits[1] * 100 + digits[2] * 10 + digits[3]; // 对数组进行逆序排序,得到最大数 sort(digits, digits + 4, greater<int>()); int max_num = digits[0] * 1000 + digits[1] * 100 + digits[2] * 10 + digits[3]; // 计算差值 int result = max_num - min_num; // 输出变化过程 cout << max_num << " - " << min_num << " = " << result << endl; return result; } int main() { int num; // 输入一个四位数 cin >> num; int step = 0; // 循环直到结果为 6174 while (num != 6174) { num = subtract(num); step++; } // 输出步数 cout << step << endl; return 0; } ``` ### 代码解释 1. **`subtract` 函数**: - 首先将输入的四位数的每一位存入数组 `digits` 中。 - 对数组进行排序得到最小数 `min_num`。 - 对数组进行逆序排序得到最大数 `max_num`。 - 计算最大数和最小数的差值,并输出变化过程。 - 返回差值。 2. **`main` 函数**: - 读取用户输入的四位数。 - 使用 `while` 循环,不断调用 `subtract` 函数,直到结果为 6174。 - 记录步数并输出。 ######[AI问答 | 576点数解答 | 2026-02-25 19:15:59]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]