📅  最后修改于: 2023-12-03 15:28:50.202000             🧑  作者: Mango
阿姆斯特朗编号(Armstrong number),也称为自恋数、自幂数或自我吹嘘数,是指一个N位数,其各位数字的N次方和等于该数本身。例如,153是一个三位数的阿姆斯特朗数,因为 $1^3 + 5^3 + 3^3 = 153$。
#include <stdio.h>
#include <math.h>
int main() {
int n, num, digit, sum, i;
printf("请输入一个正整数N:");
scanf("%d", &n);
printf("所有的%d位阿姆斯特朗数为:\n", n);
for (i = pow(10, n-1); i < pow(10, n); i++) {
// 计算数码N次方和
sum = 0;
num = i;
while (num > 0) {
digit = num % 10;
sum += pow(digit, n);
num /= 10;
}
// 判断是否为阿姆斯特朗数
if (i == sum) {
printf("%d\n", i);
}
}
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, num, digit, sum, i;
cout << "请输入一个正整数N:";
cin >> n;
cout << "所有的" << n << "位阿姆斯特朗数为:" << endl;
for (i = pow(10, n-1); i < pow(10, n); i++) {
// 计算数码N次方和
sum = 0;
num = i;
while (num > 0) {
digit = num % 10;
sum += pow(digit, n);
num /= 10;
}
// 判断是否为阿姆斯特朗数
if (i == sum) {
cout << i << endl;
}
}
return 0;
}
以上代码示例演示了如何输入正整数N,然后依次计算每个N位数的各数位N次方之和,检查其是否等于该数本身,并打印输出所有的阿姆斯特朗数。