Happy numberTotal accepted:7315 Total submissions:22724my submissions QuestionSolution
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 and replace the number by the Sum of the squares of its digits, and repeat the process until the number equals 1 (where it would stay), or it loops Endl essly in a cycle which does not include 1. Those numbers for which this process ends in 1 is happy numbers.
Example:19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
Credits:
Special thanks to @mithmatt and @ts for adding the problem and creating all test cases.
Hide TagsHash Table MathHas you met this question in a real interview? Yes No
Discuss
This problem will be stored in set for each result calculated based on the previous value, and then the search will be done.
#include <iostream>//#include <map> #include <set>using namespace std;int n_to_n (int a) {int b=a;int Last_result=0;while (b!=0) {last_result= (b%10) * (b%10) +LAST_RESULT;B=B/10;} return last_result;} BOOL Ishappy (int n) {set<int> temp;temp.insert (n); int a=n;bool C;while (1) {int b=n_to_n (a); if (b==1) {c=1;break;} if (Temp.count (b) ==1) {c=0;break;} Temp.insert (b); cout<<b<<endl;a=b;} return c;} int main () {cout<<ishappy (2) <<endl;}
leetcode_202 title--happy number (hash)