c++对输入的一个小于 1000 且三个数字不全相等的整数,输出进入黑洞的重排求差过程
时间: 2024-03-09 07:47:09 浏览: 125
好的,我来解答你的问题。
首先,进入黑洞的重排求差过程是指对输入的三位数,将其重新排列为一个大数和一个小数,然后用大数减去小数,得到一个新的三位数。如此循环重复操作,直到得到的两个数完全相同,即进入“黑洞”。
下面是 C++ 代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
while (true) {
int a[3] = {n / 100, n / 10 % 10, n % 10};
sort(a, a + 3); // 重新排序
int big = a[2] * 100 + a[1] * 10 + a[0]; // 大数
int small = a[0] * 100 + a[1] * 10 + a[2]; // 小数
n = big - small; // 新数
cout << big << " - " << small << " = " << n << endl;
if (n == 495) { // 进入“黑洞”
break;
}
}
return 0;
}
```
以上代码中,我们首先读入一个小于1000且三个数字不全相等的整数n,然后在while循环中进行重排求差操作,直到得到的新数为495时,跳出循环。在每次操作中,我们先将n的三个数字重新排序,得到大数和小数,然后相减得到新数,并输出相关信息。
希望能够解答你的问题。
阅读全文