📅  最后修改于: 2023-12-03 14:59:52.259000             🧑  作者: Mango
阿姆斯壮数是指一个 n 位数,它的每个数字的 n 次幂之和等于它本身。例如,153 是一个阿姆斯壮数,因为 1^3 + 5^3 + 3^3 = 153。
在下面的 C++ 代码中,我们将展示一个程序,可以显示两个给定的间隔之间的阿姆斯壮数。
#include <iostream>
#include <cmath>
// 函数用于检查一个数字是否为阿姆斯壮数
bool isArmstrong(int num) {
int temp = num;
int digitCount = 0;
int sum = 0;
// 计算数字的位数
while (temp != 0) {
temp /= 10;
digitCount++;
}
// 计算每个位数的数字的 n 次幂之和
temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, digitCount);
temp /= 10;
}
// 检查是否为阿姆斯壮数
if (sum == num) {
return true;
} else {
return false;
}
}
// 函数用于显示两个给定间隔之间的阿姆斯壮数
void displayArmstrongNumbers(int start, int end) {
std::cout << "Armstrong numbers between " << start << " and " << end << ":\n";
for (int num = start; num <= end; num++) {
if (isArmstrong(num)) {
std::cout << num << " ";
}
}
std::cout << std::endl;
}
int main() {
int start, end;
std::cout << "Enter the start number: ";
std::cin >> start;
std::cout << "Enter the end number: ";
std::cin >> end;
displayArmstrongNumbers(start, end);
return 0;
}
以上代码首先定义了一个名为 isArmstrong
的函数,用于检查一个数字是否为阿姆斯壮数。该函数通过计算数字的位数并求解每个位数数字的 n 次幂之和来判断。
然后定义了一个名为 displayArmstrongNumbers
的函数,用于显示两个给定间隔之间的阿姆斯壮数。该函数会遍历每个数字,并调用 isArmstrong
函数进行判断。
在 main
函数中,用户可以输入两个数字作为起始和结束点,然后调用 displayArmstrongNumbers
函数进行展示。
注意:上述代码中使用了 <cmath>
头文件中的 pow
函数,该函数用于计算一个数字的 n 次幂。
运行程序后,将会显示在给定的两个间隔之间的阿姆斯壮数。
希望这个程序能帮助你理解如何在 C++ 中显示两个间隔之间的阿姆斯壮数。