标签:
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
Solution: 辅助函数;循环计算每位数字的平方和,直到出现结果为1(返回true)或者重复(返回false)
1 class Solution { 2 public: 3 bool isHappy(int n) { 4 map<int,bool> m; 5 int ret=sum(n); 6 while(ret!=1){ 7 if(m[ret]==true)return false; 8 m[ret]=true; 9 ret=sum(ret); 10 } 11 return true; 12 } 13 int sum(int n){ 14 int ret=0; 15 while(n){ 16 ret += (n%10)*(n%10); //不支持(n%10)^2 17 n /= 10; 18 } 19 return ret; 20 } 21 };
标签:
原文地址:http://www.cnblogs.com/irun/p/4696845.html