【c语言水仙花数】在C语言编程中,水仙花数是一个经典的数学问题,常用于初学者练习循环结构和条件判断。所谓水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。例如:153、370、371、407等都是水仙花数。
本文将对C语言实现水仙花数的算法进行总结,并通过表格形式展示常见水仙花数及其计算过程,帮助读者更好地理解这一概念。
一、什么是水仙花数?
水仙花数(Narcissistic number)又称自恋数、自幂数,指的是一个n位数,其各位数字的n次方之和等于该数本身。最常见的为三位数中的水仙花数。
例如:
- 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153
- 370 = 3³ + 7³ + 0³ = 27 + 343 + 0 = 370
二、C语言实现思路
1. 遍历所有三位数(100 ~ 999)。
2. 提取百位、十位、个位数字。
3. 计算各数字的立方和。
4. 比较立方和与原数是否相等。
5. 若相等,则输出该数。
三、C语言代码示例
```c
include
int main() {
int num, original, remainder, sum = 0;
printf("水仙花数有:\n");
for (num = 100; num <= 999; num++) {
original = num;
sum = 0;
while (original > 0) {
remainder = original % 10;
sum += remainder remainder remainder;
original /= 10;
}
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
```
四、常见水仙花数汇总表
水仙花数 | 各位数字分解 | 计算过程 |
153 | 1, 5, 3 | 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 |
370 | 3, 7, 0 | 3³ + 7³ + 0³ = 27 + 343 + 0 = 370 |
371 | 3, 7, 1 | 3³ + 7³ + 1³ = 27 + 343 + 1 = 371 |
407 | 4, 0, 7 | 4³ + 0³ + 7³ = 64 + 0 + 343 = 407 |
五、总结
水仙花数是C语言中常见的练习题,有助于理解循环、条件判断和数值处理。通过编写程序,可以直观地验证哪些数是水仙花数。掌握这一知识点后,可以进一步扩展到其他类型的自幂数(如四位数的“四叶玫瑰数”等),提升编程能力。
如果你正在学习C语言,不妨动手尝试编写这个程序,加深对基础语法的理解。