数学黑洞7174猜想:
任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m),然后,继续对k1重复上述变换,得数k2.如此进行下去,卡普耶卡发现,无论k0是多大的四位数, 只要四个数字不全相同,最多进行7次上述变换,就会出现四位数6174。
下面给出计算逻辑代码,请参考:
int num1 = 5438;
for(;;) {
char[] c = (num1+"").toCharArray();
Arrays.sort(c); // 数字排序
int min = 0; // 最小值
for (int i = 0; i < c.length; i++) {
min = min * 10 + (c[i]-'0');
}
int max = 0; // 最大值
for (int i = c.length - 1; i >= 0; i--) {
max = max * 10 + (c[i]-'0');
}
int num2 = max - min;
if(num2 == num1) break; // 此步很重要 如果本次的计算差值与上次的相同 则直接跳出循环
System.out.println(num2);
num1 = num2;
}
结果如下:
5085
7992
7173
6354
3087
8352
6174
不过,本人倒时试出了别的值;
由于猜想是说四位不全相同的数值,经本人略加测试 发现如下规律的值经上述步骤计算后的结果都是0,
如 5554、5545、8999、9899 等三位相同的数字作为大数,小数字是大数-1,任意排列作为起始值,结果都是0;
不信可以试下!
至此结束;谢谢!