使用c语言实现,编写一个判断水仙花的函数,所谓水仙花数是指一个三位数的立方和等于该数的本身,例如153是一个水仙花数,因为。通过主函数调用该函数求100~999之间的全部水仙花数
时间: 2024-11-03 19:24:12 浏览: 35
C语言实现水仙花数(阿姆斯特朗数)的三种方法
在C语言中,我们可以创建一个函数`is_armstrong_number`来判断一个整数是否为水仙花数。首先,我们需要定义一个辅助函数`sum_of_digits`来计算数字的各个位数之和。接着,在`is_armstrong_number`函数中,我们会先检查输入的数是否满足三位数条件,然后计算其立方和并与原数进行比较。
下面是实现这个功能的代码:
```c
#include <stdio.h>
// 辅助函数,计算给定数的各位数字之和
int sum_of_digits(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10; // 取余数并累加到总和
num /= 10; // 将数除以10取下一个位
}
return sum;
}
// 判断是否为水仙花数
int is_armstrong_number(int num) {
if (num < 100 || num > 999) { // 检查是否是三位数
return 0;
}
int original_num = num; // 保存原始数值
int cube_sum = sum_of_digits(num * num * num); // 计算立方和
// 如果立方和等于原始数,则是水仙花数
return cube_sum == original_num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong_number(i)) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
在这个程序中,我们通过循环遍历100到999之间的所有整数,并使用`is_armstrong_number`函数检查每个数是否是水仙花数。如果找到符合条件的数,就打印出来。
阅读全文