快乐数

来源:互联网 发布:数据的离散程度教案 编辑:程序博客网 时间:2024/06/05 10:19
写一个算法来判断一个数是不是"快乐数"。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例

19 就是一个快乐数。



import java.util.Scanner;/** * 写一个算法来判断一个数是不是"快乐数"。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。样例19 就是一个快乐数。1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1 *  * @author Dell * */public class Test488 {     public static boolean isHappy(int n)     {     while(true)     {       n=nsum(n);     if(n==4)     {     return false;     }     else if(n==1)     return true;     }     }          public static int nsum(int n)     {      int sum=0;     while(n!=0)     {     int x=n%10;     n=n/10;     sum=sum+x*x;     }     return sum;     }public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); System.out.println(isHappy(n));}}