202. Happy Number (Easy)

来源:互联网 发布:武汉人工智能培训 编辑:程序博客网 时间:2024/06/06 09:45

Write an algorithm to determine if a number is “happy”.

A happy number is a number defined by the following process: Starting
with any positive integer, replace the number by the sum of the
squares of its digits, and repeat the process until the number equals
1 (where it will stay), or it loops endlessly in a cycle which does
not include 1. Those numbers for which this process ends in 1 are
happy numbers.

Example: 19 is a happy number

12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1

Solution:

Java:

import java.util.ArrayList;import java.util.List;public class Solution {    public int calculate(int n) {        int sum = 0;        int m;        while(n != 0) {            m = n % 10;            sum += m * m;            n /= 10;        }        return sum;    }    public boolean isHappy(int n) {        List<Integer> list = new ArrayList<>();        int result = calculate(n);        while(result != 1) {            if(list.contains(result)) {                return false;            }else {                list.add(result);                result = calculate(result);            }        }        return true;    }    public void test() {        System.out.println(isHappy(20));    }    public static void main(String[] args) {        new Solution().test();    }}
0 0