使用C++输出水仙花数,详细解答
作者:野牛程序员:2023-06-20 17:23:04 C++阅读 3051
当一个n位数等于它的每个位上的数字的n次幂之和时,我们称其为水仙花数。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
下面是使用C++编写的输出水仙花数的示例代码:
#include <iostream>
#include <cmath>
bool isArmstrongNumber(int number) {
int originalNumber = number;
int numDigits = 0;
int sum = 0;
// 计算数字的位数
while (originalNumber != 0) {
originalNumber /= 10;
numDigits++;
}
// 计算每个位上的数字的n次幂之和
originalNumber = number;
while (originalNumber != 0) {
int digit = originalNumber % 10;
sum += pow(digit, numDigits);
originalNumber /= 10;
}
// 检查是否是水仙花数
return (sum == number);
}
int main() {
int start, end;
std::cout << "请输入要查找的范围的起始数: ";
std::cin >> start;
std::cout << "请输入要查找的范围的结束数: ";
std::cin >> end;
std::cout << "水仙花数列表: ";
for (int number = start; number <= end; ++number) {
if (isArmstrongNumber(number)) {
std::cout << number << " ";
}
}
std::cout << std::endl;
return 0;
}这段代码首先定义了一个名为isArmstrongNumber的函数,用于检查一个数字是否是水仙花数。该函数接受一个整数作为输入,并返回一个布尔值,指示该数字是否是水仙花数。在该函数中,我们使用循环计算了输入数字的位数,并计算了每个位上的数字的n次幂之和。最后,我们将这个和与原始数字进行比较,如果它们相等,则该数字是水仙花数。
在main函数中,我们首先获取用户输入的要查找的范围的起始数和结束数。然后,我们使用一个循环遍历该范围内的每个数字,并调用isArmstrongNumber函数来检查每个数字是否是水仙花数。如果是水仙花数,我们就将其输出到屏幕上。
请注意,该代码假定用户输入的起始数小于或等于结束数,并且输入的数字都是正整数。此外,代码中使用了C++标准库中的cmath头文件中的pow函数来进行幂运算。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:arduino舵机控制
- 下一篇:使用python语言输出水仙花数,详细解答
