495是一个很神奇的数,被称为黑洞数或者陷阱数
任务描述:
给定任何一个小于1000的正整数,经前位补0后可以得到一个三位数(两位数前面补1个0,一位数前面补2个0。如果这个三位数的三个数字不全相等,那么经过有限次“重排求差”操作(组成该数的数字重排后的最大数减去重排后的最小数),总会得到495,神奇吧
例如:
对于整数80,看看怎么得到495吧!
1.1:800-8=792 //第一次重排后求差(将80重排) |
2.2:972-279=693 //第二次,将第一次的结果重排求差 |
3.3:963-369=594 //第三次,将第二次的结果进行重排求差 |
4.4:954-459=495 //将上次的结果进行重排求差 |
具体代码如下:
#include<stdio.h>
int main()
{
int count = 0;
int a, b, c, n,tmp,max,min;
scanf_s("%d", &n);
if (n < 1000)
{
while (n != 495)
{
a = n % 10;
b = n / 10 % 10;
c = n / 100;
while (a != b||a != c)
{
if (a < b)
{
tmp = a;
a = b;
b = tmp;
}
if (a < c)
{
tmp = a;
a = c;
c = tmp;
}
if (b < c)
{
tmp = b;
b = c;
c = tmp;
}
break;
}
max = a * 100 + b * 10 + c;
min = c * 100 + b * 10 + a;
n = max - min;
count++;
printf("%d:%d-%d=%d\n", count, max, min, n);
}
}
return 0;
}
结果如下:
如有问题请指正。