A number is called a happy number, if you start with the given number
and arrive at 1 by repeating the following process (as illustrated in the below example): (a)
compute the sum of the squares of given number digits (b) if the resultant value is 1, then
the number is happy number, else execute point (a) for the newly produced number.
Note that if a number is not a happy number, there will be an endless loop to this execution.
Goal: In this question, you are required to write C++ code that checks whether the number
entered by the user is a happy number or not for 10 cycles/iterations only.
Example: Assume a number 19
Number Computation Result cycle/iterations
19 1
2 + 9
2 82 1
82 8
2 + 2
2 68 2
68 6
2 + 8
2 100 3
100 1
2 + 0
2 +0
2 1 4
#include <iostream>
using namespace std;
int main()
{
int n, squareSum=0;
cout << "Please, enter a number: ";
cin >> n;
int i = 0;
int k = n;
while (i<10)
{
while (k > 0)
{
squareSum += (k % 10)*(k % 10);
k /= 10;
}
if (squareSum == 1)
{
cout << n << " is happy number!";
break;
}
k = squareSum;
squareSum = 0;
i++;
}
if(i==10)
cout << n << " is not happy number!";
}
Comments
Leave a comment