用c语言求第一个水仙花数
时间: 2024-10-27 13:02:16 浏览: 23
在C语言中,水仙花数是指一个三位数(每位数字的立方和等于原数),例如153(1^3 + 5^3 + 3^3 = 153)。要编写一个函数来找出所有小于1000的水仙花数,可以创建一个循环遍历从1到999的所有整数,然后检查其各位数字是否满足条件。以下是简单的实现:
```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 = 2; i >= 0; i--) {
if (digits[i]) { // 如果有非零数字
sum += digits[i] * digits[i] * digits[i];
}
}
}
return sum == num; // 返回如果三位数的立方和等于它本身
}
void find_narcissistic_numbers() {
for (int i = 100; i < 1000; i++) {
if (is_narcissistic(i)) {
printf("%d 是一个水仙花数。\n", i);
}
}
}
int main() {
find_narcissistic_numbers();
return 0;
}
```
当你运行这个程序,它会输出所有小于1000的水仙花数。
阅读全文