[LeetCode] 202. Happy Number, leetcode202.happy
Question
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
Ideas
None
Code
/* --------------------------------------------------------- * Date: * Author: SJF0115 * Subject: 202. happy Number * URL: https://leetcode.com/problems/happy-number/* result: AC * Source: LeetCode * blog: Author */# include <iostream> # include <vector> # include <algorithm> using namespace std; class Solution {public: bool isHappy (int n) {if (n = 1) {return true;} // if (n = 0) {return false;} // if return Recursion (n);} private: vector <int> visited; bool Recursion (int n) {if (n = 1) {return true;} // if int num = n; int tmp, value = 0; while (num) {tmp = num % 10; value + = tmp * tmp; num/= 10;} // while // determines whether a sphere vector is formed <int>: iterator result = find (visited. begin (), visited. end (), value); if (result! = Visited. end () {return false;} // if visited. push_back (value); return Recursion (value) ;}}; int main () {Solution solution; int n = 2; if (solution. isHappy (n) {cout <n <"is Happy Number" <endl ;} // if else {cout <n <"is not Happy Number" <endl;} return 0 ;}
Running time