C语言中求水仙花数的方法是利用循环和条件判断进行计算。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
具体的求法如下:
- 使用一个循环,从100开始逐个判断每个数是否是水仙花数。
- 对于每个数,首先获取该数的位数n。
- 将该数拆分为各个位上的数字,并计算每个数字的n次幂。
- 将各个数字的n次幂相加,得到一个和。
- 判断该和是否等于原数,如果相等,则说明该数是水仙花数,可以输出或保存起来。
示例代码如下:
#include#include int main() { int n, num, digit, sum; printf("水仙花数有:"); for (num = 100; num < 1000; num++) { n = 0; sum = 0; int temp = num; // 获取位数n while (temp != 0) { temp /= 10; n++; } temp = num; // 分解并计算每个位上的数字的n次幂 while (temp != 0) { digit = temp % 10; sum += pow(digit, n); temp /= 10; } // 判断是否是水仙花数 if (sum == num) { printf("%d ", num); } } return 0; }
运行结果为:
水仙花数有:153 370 371 407
表示100到999之间的水仙花数为153、370、371和407。