c语言求1~1000以内的水仙花数,
时间: 2024-10-14 07:18:40 浏览: 39
水仙花数(Narcissistic Number)是指一个n位正整数等于其各个位置数字的n次幂之和。例如,153是一个水仙花数,因为它等于1^3 + 5^3 + 3^3。
在C语言中,你可以通过循环遍历1到1000范围内的每个整数,然后计算每一位数字的立方并加起来,判断是否等于原数本身来找出水仙花数。以下是简单的C代码实现:
```c
#include <stdio.h>
int isNarcissistic(int num) {
int digits[10], sum = 0;
while(num > 0) {
digits[sum++] = num % 10; // 取余数得到最后一位
num /= 10; // 移除最后一位
}
int temp = 0;
for(int i = 0; i < sum; i++) {
temp += pow(digits[i], sum); // 计算每位立方后相加
}
return temp == num;
}
int main() {
for(int i = 1; i <= 1000; i++) {
if(isNarcissistic(i)) {
printf("%d 是一个水仙花数。\n", i);
}
}
return 0;
}
```
这段程序首先定义了一个函数isNarcissistic,它接受一个数字作为输入,然后检查该数字是否满足水仙花条件。main函数则负责遍历1到1000的每一个数,并调用isNarcissistic函数进行判断。
阅读全文