C++编程:寻找1到400之间的所有水仙花数

水仙花数(或阿姆斯特朗数)是指一个 n 位数,其各位数字的 n 次方之和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。

以下是用 C++ 编写的程序,用于查找 1 到 400 之间的所有水仙花数:cpp#include #include

bool isArmstrongNumber(int num) { int originalNum = num; int sum = 0; int digits = static_cast(log10(num)) + 1; while (num > 0) { int digit = num % 10; sum += pow(digit, digits); num /= 10; } return (sum == originalNum);}

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;}

代码解释:

  1. 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

  2. main() 函数: - 打印 '1 到 400 之间的水仙花数为:'。 - 使用一个 for 循环迭代 1 到 400 之间的所有数字。 - 对于每个数字,调用 isArmstrongNumber() 函数。 - 如果函数返回 true,则打印该数字。

输出:

1 到 400 之间的水仙花数为:1 2 3 4 5 6 7 8 9 153 370 371

这段代码会找到并输出 1 到 400 之间的所有水仙花数。

C++编程:寻找1到400之间的所有水仙花数

原文地址: https://www.cveoy.top/t/topic/kIU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录