for语句求出所有的水仙花数,并统计水仙花数的个数C语言
时间: 2024-12-21 22:21:38 浏览: 7
在C语言中,你可以使用for循环遍历一定范围内的数字,检查它们是否是水仙花数。水仙花数是指那些所有位上的数字立方之和等于原数本身的三位数。以下是利用for循环查找并统计水仙花数的一个简单示例:
```c
#include <stdio.h>
int is narcissistic(int num) {
int digits[3], sum = 0;
while (num > 0) {
digits[2] = num % 10; // 取最后一位
num /= 10;
for (int i = 0; i < 2; i++) {
sum += (digits[i] * digits[i] * digits[i]);
}
}
return sum == num;
}
int main() {
int count = 0;
for (int i = 100; i <= 999; i++) { // 遍历三位数
if (is_narcissistic(i)) {
printf("%d 是水仙花数。\n", i);
count++;
}
}
printf("共有 %d 个水仙花数。\n", count);
return 0;
}
```
这个程序首先定义了一个`is_narcissistic`函数来判断一个数是否是水仙花数。接着,在主函数中,我们使用for循环遍历100到999之间的数,如果遇到水仙花数就打印出来并增加计数器。
阅读全文