📅  最后修改于: 2023-12-03 14:39:59.857000             🧑  作者: Mango
阿姆斯特朗数(Armstrong number),又叫做自恋数(narcissistic number)、水仙花数或自幂数,它是指一个n位十进制数,它的每个位上的数字的n次幂之和等于它本身。
以3位数为例,如果一个3位数ABC满足以下条件,那么它就是阿姆斯特朗数:
ABC = A^3 + B^3 + C^3
同理,如果是4位数,就是:
ABCD = A^4 + B^4 + C^4 + D^4
以此类推。
下面是一个使用C++编写的判断是否为阿姆斯特朗数的代码示例:
#include <iostream>
#include <cmath>
using namespace std;
// 计算一个数的位数
int countDigits(int num)
{
int count = 0;
while (num != 0)
{
count++;
num /= 10;
}
return count;
}
// 判断一个数是否为阿姆斯特朗数
bool isArmstrongNumber(int num)
{
int sum = 0;
int temp = num;
int digits = countDigits(num);
while (temp != 0)
{
int digit = temp % 10;
sum += pow(digit, digits);
temp /= 10;
}
if (sum == num)
{
return true;
}
else
{
return false;
}
}
int main()
{
int num;
cout << "请输入一个数:";
cin >> num;
if (isArmstrongNumber(num))
{
cout << num << "是阿姆斯特朗数!" << endl;
}
else
{
cout << num << "不是阿姆斯特朗数。" << endl;
}
return 0;
}
代码分为三个部分:
countDigits
函数:用来计算一个数的位数。isArmstrongNumber
函数:用来判断一个数是否为阿姆斯特朗数。main
函数:用来调用上面两个函数,并输出结果。使用方法:输入一个数,程序会判断它是否为阿姆斯特朗数,并输出结果。
阿姆斯特朗数是一个有趣的数学问题,我们可以编写程序来寻找这样的数。本文中给出了一个C++示例,以供参考。