使用C++输出水仙花数,详细解答
作者:野牛程序员:2023-06-20 17:23:04 C++阅读 3022
当一个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语言输出水仙花数,详细解答