编写算法以确定数字是否“满意”。
幸福数字是由以下过程定义的数字:从任何正整数开始,将数字替换为其数字的平方和,并重复该过程,直到数字等于1(它将保留的位置),或者它在一个不包括1的循环中无休止地循环。这个过程以1结尾的那些数字是幸福的数字。
示例:
19是一个快乐的数字:
1²+9²= 82
8²+2²= 68
6²+8²= 100
1²+0²+0²= 1
public class Solution {
public boolean isHappy(int num) {
while(num != 1){
int sum = 0;
int tempNum = num;
while(tempNum / 10 > 0) {
int rem = 0;
rem = tempNum % 10;
// System.out.println("rem: "+ rem);
sum += rem * rem ;
tempNum = tempNum/10;
// System.out.println("sum: "+ sum);
// System.out.println("num: "+ num);
}
sum += tempNum * tempNum;
System.out.println(num);
num = sum;
}
if(num == 1) {
System.out.println(num);
return true;
} else {
return false;
}
// break;
}
public void main(String args[]){
int n = 19;
isHappy(n);
}
}
上述代码的问题是无限迭代。我应该如何修改我的代码?对于任何不“满意”的数字,它会进入错误状态和循环