C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身。比如,153就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153,这样的数字在数学上称为“自幂数”。
水仙花数是一类数学上的现象,有着美丽的形式和神奇的性质,被广泛用于数学科普和编程练习。在 C语言中,可以通过循环和条件判断等基本语句,来实现水仙花数的求解。
下面是一个简单的 C语言程序,用于求解三位数中的水仙花数:
- #include <stdio.h>
- int main()
- {
- int num, digit, sum;
- printf("Three-digit narcissistic numbers:\n");
- for(num = 100; num <= 999; num++)
- {
- digit = num % 10; // 获取个位数字
- sum = digit * digit * digit; // 计算个位数字的立方
- digit = num / 10 % 10; // 获取十位数字
- sum += digit * digit * digit; // 计算十位数字的立方
- digit = num / 100; // 获取百位数字
- sum += digit * digit * digit; // 计算百位数字的立方
- if(num == sum)
- printf("%d\n", num); // 输出水仙花数
- }
- return 0;
- }
运行上述程序,输出结果如下:
Three-digit narcissistic numbers:
153
370
371
407 代码中,首先使用一个 for 循环,从 100 开始遍历到 999,对于每个三位数,将其个位、十位、百位上的数字分别提取出来,然后将它们的立方相加。如果最后的结果等于原数,则说明这个数字是水仙花数,将其输出即可。
这样的求解思路简单直观,代码易于理解和修改,适合初学者进行学习和练习。
|