我的代码没有处理错误的情况。有什么投入?

时间:2015-10-14 18:28:02

标签: java algorithm oop coding-style

编写算法以确定数字是否“满意”。

幸福数字是由以下过程定义的数字:从任何正整数开始,将数字替换为其数字的平方和,并重复该过程,直到数字等于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);
    }
}

上述代码的问题是无限迭代。我应该如何修改我的代码?对于任何不“满意”的数字,它会进入错误状态和循环

0 个答案:

没有答案