mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-02-09 05:27:11 +08:00
fix: Armstrong number bug fixes (#1689)
* added a new directory named Recursion and a most common exxample of recusion i.e. Tower of Hanoi in it * Added Comments * Bug fixed according to the correct definition of armstrong_number * Bug Fixed in armstrong_number.cpp Bug Fixed in armstrong_number.cpp according to the correct definition of armstrong_number. * Update armstrong_number.cpp * Added documentation * Delete Recursion directory * Update armstrong_number.cpp * Update dynamic_programming/armstrong_number.cpp Co-authored-by: David Leal <halfpacho@gmail.com> * Update armstrong_number.cpp fixed errors. * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Update armstrong_number.cpp Applied suggested changes. * Update armstrong_number.cpp Co-authored-by: David Leal <halfpacho@gmail.com>
This commit is contained in:
@@ -1,21 +1,41 @@
|
||||
// Program to check whether a number is an armstrong number or not
|
||||
#include <iostream>
|
||||
|
||||
#include <cmath>
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
|
||||
int main() {
|
||||
int n, k, d, s = 0;
|
||||
cout << "Enter a number:";
|
||||
int n = 0, temp = 0, rem = 0, count = 0, sum = 0;
|
||||
cout << "Enter a number: ";
|
||||
cin >> n;
|
||||
k = n;
|
||||
while (k != 0) {
|
||||
d = k % 10;
|
||||
s += d * d * d;
|
||||
k /= 10;
|
||||
|
||||
temp = n;
|
||||
|
||||
/* First Count the number of digits
|
||||
in the given number */
|
||||
while(temp != 0) {
|
||||
temp /= 10;
|
||||
count++;
|
||||
}
|
||||
if (s == n)
|
||||
cout << n << "is an armstrong number";
|
||||
else
|
||||
cout << n << "is not an armstrong number";
|
||||
|
||||
/* Calaculation for checking of armstrongs number i.e.
|
||||
in a n digit number sum of the digits raised to a power of n
|
||||
is equal to the original number */
|
||||
|
||||
temp = n;
|
||||
while(temp!=0) {
|
||||
rem = temp%10;
|
||||
sum += (int) pow(rem,count);
|
||||
temp/=10;
|
||||
}
|
||||
|
||||
|
||||
if (sum == n) {
|
||||
cout << n << " is an armstrong number";
|
||||
}
|
||||
else {
|
||||
cout << n << " is not an armstrong number";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user