C++编程:寻找1到400之间的所有水仙花数
C++编程:寻找1到400之间的所有水仙花数
水仙花数(或阿姆斯特朗数)是指一个 n 位数,其各位数字的 n 次方之和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
以下是用 C++ 编写的程序,用于查找 1 到 400 之间的所有水仙花数:cpp#include
bool isArmstrongNumber(int num) { int originalNum = num; int sum = 0; int digits = static_cast
int main() { std::cout << '1 到 400 之间的水仙花数为:' << std::endl; for (int num = 1; num <= 400; num++) { if (isArmstrongNumber(num)) { std::cout << num << ' '; } } std::cout << std::endl; return 0;}
代码解释:
-
isArmstrongNumber(int num)函数: - 接收一个整数num作为输入。 - 创建变量originalNum来存储原始输入数字。 - 初始化变量sum为 0,用于存储各位数字的 n 次方之和。 - 使用log10(num) + 1计算数字的位数,并将其存储在digits变量中。 - 使用一个while循环遍历数字的每一位: -digit = num % 10获取个位数字。 -sum += pow(digit, digits)将个位数字的 n 次方加到sum中。 -num /= 10将数字右移一位。 - 最后,如果sum等于originalNum,则返回true,否则返回false。 -
main()函数: - 打印 '1 到 400 之间的水仙花数为:'。 - 使用一个for循环迭代 1 到 400 之间的所有数字。 - 对于每个数字,调用isArmstrongNumber()函数。 - 如果函数返回true,则打印该数字。
输出:
1 到 400 之间的水仙花数为:1 2 3 4 5 6 7 8 9 153 370 371
这段代码会找到并输出 1 到 400 之间的所有水仙花数。
原文地址: https://www.cveoy.top/t/topic/kIU 著作权归作者所有。请勿转载和采集!