如果把一個正整數的每一位都平方后再求和,得到一個新的正整數。
對新產生的正整數再做同樣的處理。
如此一來,你會發現,不管開始取的是什么數字,
最終如果不是落入1,就是落入同一個循環圈。
請寫出這個循環圈中最大的那個數字。
請填寫該最大數字。
注意:你提交的應該是一個整數,不要填寫任何多余的內容或說明性文字。
題目中葯我們通過一系列的計算求出循環圈中的最大值,其難點就在於循環終止的條件,
但是不難想出當循環第二次到達最大值是循環結束。題目中的最大值為:145具體代碼如下:
public class Main {
public static void main(String[] args) {
System.out.println(f(1234));
System.out.println(f(12345));
System.out.println(f(123));
System.out.println(f(23456));
// 計算結果都為145
}
public static int f(int num) {
int max = 0;// 通過num計算出的最大值
while (true) {
int temp = 0;// 保存num本次計算的值
while (num != 0) {
temp += (num % 10) * (num % 10);
num = num / 10;
}
num = temp;
if(max == temp ){
break;
}else{
max = (max > temp) ? max : temp;
}
}
return max;
}
}