原题:
平方怪圈:
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
对新产生的正整数再做同样的处理。
如此一来,你会发现,不管开始取的是什么数字,
最终如果不是落入1,就是落入同一个循环圈。
请写出这个循环圈中最大的那个数字。
请填写该最大数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
个人做法仅供参考:
import java.util.Random;
public class 平方怪圈 {
public static void main(String[] args) {
Random r = new Random();
int a = r.nextInt(100);//产生一个100以内的随机数
System.out.println(a);
System.out.println(m(a));//输出最大值
}
/*
* 定义一个方法输出循环圈中最大值
*/
static int m(int num) {
int max = 0;//记录最大值
while (true) {
int temp = 0;//平方和
while (num != 0) {
temp += Math.pow((num % 10), 2);
num = num / 10;
}
if (max == temp) {
break;
} else {
//最大值
max = (max > temp) ? max : temp;
num = temp;//再循环
}
}
return max;
}
}