Google Interview Question: Happy Numbers
How to solve the Happy numbers problem using Python
The question:
Write an algorithm to determine if a number
n
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.
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.
Return
true
ifn
is a happy number, andfalse
if not.
We are given an example of how the output should look like:
Input: n = 19
Output: true
Explanation:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
Example 2:
Input: n = 2
Output: false
This is a common interview problem especially with the company Google. As someone preparing for software engineering interview problems you would definitely want to know how to approach and solve this problem. In this article we are going to have a look at the steps for solving this.
I advice that you first try and solve it on your own first before having a look at the solution!
The solution:
As seen in the example above we want our code to be able to square and sum the digits as well as determine whether the final result is one or whether the result ends up in an endless loop cycle.
To do this we will make use of while loops as well as sets.
Below is the code that shows the algorithm
The solution above makes good use of space and time! Feel free to comment below on other approaches of solving this problem.