任意一个四位正整数(4位数字相同者除外), 将各位数字组成一个最大数和最小数,两数相减并重复这一过程必得6174。 输入 输入一个四位正整数。 输出 输出文件包含多行, 组成一个最大数和一个最小数就输出一行,直道结果为6174,c++,iostream,不能使用函数
时间: 2024-04-11 22:27:35 浏览: 45
以下是使用C++的代码实现,通过循环计算,直到结果为6174为止:
```cpp
#include <iostream>
#include <algorithm>
#include <sstream>
int main() {
std::string input;
std::cin >> input;
while (input != "6174") {
std::sort(input.begin(), input.end(), std::greater<char>());
int max_num = std::stoi(input);
std::sort(input.begin(), input.end());
int min_num = std::stoi(input);
int result = max_num - min_num;
std::stringstream ss;
ss << result;
input = ss.str();
std::cout << max_num << " - " << min_num << " = " << input << std::endl;
}
return 0;
}
```
请注意,这个代码将输入作为字符串处理,然后将其转换为整数进行计算。代码首先将输入按照降序和升序排序,然后计算最大数和最小数之间的差值,将结果转换为字符串,更新输入,并不断循环直到结果为6174。每次循环会输出一行结果。
请使用C++编译器编译并运行此代码。
阅读全文