标签:
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
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
1 class Solution { 2 public: 3 int cnt=0; 4 5 int Sum(int m) 6 { 7 cnt++; 8 int sum=0; 9 int tmp=0; 10 while(m>0) 11 { 12 tmp=m%10; 13 sum=sum+pow(tmp,2); 14 m=m/10; 15 } 16 if(sum==1) 17 { 18 return 1; 19 } 20 if(cnt>=100&&sum!=1) 21 { 22 return 0; 23 } 24 25 Sum(sum); 26 } 27 28 bool isHappy(int n) { 29 if(n==0) return false; 30 31 if(Sum(n)==1) return true; 32 if(Sum(n)==0) return false; 33 } 34 };
标签:
原文地址:http://www.cnblogs.com/jawiezhu/p/4460845.html