-
c语言水仙花数的编程
陶珊宏2025-02-27 01:16:42来源:网易 -
水仙花数,也被称为阿姆斯特朗数(Armstrong number),是指一个n位数,其各个位上的数字的n次幂之和等于该数本身。最典型的例子是三位数的水仙花数,比如153就是一个水仙花数,因为\(1^3 + 5^3 + 3^3 = 153\)。
下面将通过C语言来编写一个程序,找出所有的三位数水仙花数,并输出这些数。
首先,我们需要理解如何从一个三位数中提取每一位数字。对于任意三位数num,我们可以通过取模运算和整除运算来分别得到个位、十位和百位的数字。具体来说:
- 个位数可以通过 `num % 10` 得到。
- 十位数可以通过 `(num / 10) % 10` 得到。
- 百位数可以通过 `num / 100` 得到。
接下来,我们将这些数字分别求三次方并相加,然后检查这个和是否等于原始的三位数。
下面是具体的C语言代码实现:
```c
include
include
int main() {
int num, originalNum, remainder, n = 0;
printf("三位数的水仙花数有:\n");
// 遍历所有三位数
for(num = 100; num <= 999; num++) {
originalNum = num;
// 计算数字的位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
int sum = 0;
// 计算每位数字的n次方之和
while (originalNum != 0) {
remainder = originalNum % 10;
sum += pow(remainder, n);
originalNum /= 10;
}
// 检查是否为水仙花数
if (sum == num) {
printf("%d\n", num);
}
// 重置位数计数器
n = 0;
}
return 0;
}
```
这段代码首先初始化一些变量,包括要检查的数字`num`,用于保存原始数值的`originalNum`,用于存储余数的`remainder`,以及用于计算数字位数的`n`。然后,它遍历从100到999的所有三位数,对每个数字执行上述步骤来判断它是否为水仙花数。如果是,则打印出来。
这段程序不仅展示了如何在C语言中处理基本的数学运算和循环结构,还介绍了如何通过编程解决特定的数学问题。
标 签:
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!