B3866 [GESP202309 二级] 数字黑洞
欢迎大家报名洛谷网校的课程,期待和大家一起进步!
:::align{center} :::
思路分析
题干要求将三位数的三个数字进行重新排列,所以我们可以借助数组 int a[3]。最外层我们使用 while 语句来判断当前得到的数是否等于
我们需要先对这个三位数
核心代码
最外层循环,变换次数记录:
while(n!=495){
...
cnt++;
}
将
for (int i = 0; i < 3; i++)
{
a[i] = n % 10;
n /= 10;
}
排序,求出得到的最大的数,减去得到的最小的数,得到新的数。
sort(a, a + 3);
n = (a[2] * 100 + a[1] * 10 + a[0]) - (a[0] * 100 + a[1] * 10 + a[2]);