JAVA小程式-數學黑洞6174猜想
阿新 • • 發佈:2018-10-31
數學黑洞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;
不信可以試下!
至此結束;謝謝!