JAVA小程序-数学黑洞6174猜想

版权声明:转载请注明来源! https://blog.csdn.net/lstcui/article/details/83418850

数学黑洞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;

不信可以试下!

至此结束;谢谢!

猜你喜欢

转载自blog.csdn.net/lstcui/article/details/83418850