﻿ C++ Exercises: Find the Happy numbers between 1 to 1000 - w3resource

# C++ Exercises: Find the Happy numbers between 1 to 1000

## C++ Numbers: Exercise-17 with Solution

Write a program in C++ to find the Happy numbers between 1 to 1000.

Sample Solution:

C++ Code :

``````#include <bits/stdc++.h>
using namespace std;
int SumOfSquNum(int givno)
{
int SumOfSqr = 0;
while (givno)
{
SumOfSqr += (givno % 10) * (givno % 10);
givno /= 10;
}
return SumOfSqr;
}
bool checkHappy(int chkhn)
{
int slno, fstno;
slno = fstno = chkhn;
do
{
slno = SumOfSquNum(slno);
fstno = SumOfSquNum(SumOfSquNum(fstno));
}
while (slno != fstno);
return (slno == 1);
}
int main()
{
int j,ctr;
cout << "\n\n Find the Happy numbers between 1 to 1000: \n";
cout << " ----------------------------------------------\n";
cout << " The Happy numbers between 1 to 1000 are: "<<endl;

for (j=1;j<=1000;j++)
{
if (checkHappy(j))
cout<<j<<" ";

}
cout <<endl;
}
``````

Sample Output:

``` Find the Happy numbers between 1 to 1000:
----------------------------------------------
The Happy numbers between 1 to 1000 are:
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100 103 109 129 130 133 139 167 176 188 190 19
2 193 203 208 219 226 230 236 239 262 263 280 291 293 301 302 310 313 319 320 326 329 331 338 356 362
365 367 368 376 379 383 386 391 392 397 404 409 440 446 464 469 478 487 490 496 536 556 563 565 566
608 617 622 623 632 635 637 638 644 649 653 655 656 665 671 673 680 683 694 700 709 716 736 739 748 7
61 763 784 790 793 802 806 818 820 833 836 847 860 863 874 881 888 899 901 904 907 910 912 913 921 92
3 931 932 937 940 946 964 970 973 989 998 1000
```

Flowchart:

C++ Code Editor:

What is the difficulty level of this exercise?

﻿

## C++ Programming: Tips of the Day

How to use the PI constant in C++?

On some (especially older) platforms (see the comments below) you might need to

#define _USE_MATH_DEFINES and then include the necessary header file:
`#include<math.h>`

and the value of pi can be accessed via:

`M_PI`

In math.h (2014) it is defined as:

`# define M_PI           3.14159265358979323846  /* pi */`

but check your math.h for more. An extract from the "old" math.h (in 2009):

```/* Define _USE_MATH_DEFINES before including math.h to expose these macro
* definitions for common math constants.  These are placed under an #ifdef
* since these commonly-defined names are not part of the C/C++ standards.
*/```

However:

1. on newer platforms (at least on my 64 bit Ubuntu 14.04) I do not need to define the _USE_MATH_DEFINES
2. On (recent) Linux platforms there are long double values too provided as a GNU Extension:
`# define M_PIl          3.14159265358979323846`

Ref: https://bit.ly/3G4BgzQ