帮我写一个关于c语言的作业 作业是在3位数中找到第一个满足水仙花数
时间: 2024-11-09 14:25:12 浏览: 22
C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身
水仙花数是一个特殊的三位数,其各位数字立方和等于该数字本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的C语言程序,它会帮助你在给定范围内的三位数中查找第一个水仙花数:
```c
#include <stdio.h>
// 检查是否是水仙花数的函数
int is_armstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num; // 备份原始数,避免进位影响
while (original_num != 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 计算每位数字的立方并累加
original_num /= 10;
}
// 如果sum等于num,则它是水仙花数
return (sum == num);
}
// 主函数用于寻找水仙花数
int main() {
int start = 100; // 范围从100开始
int end = 999; // 到999结束
int candidate;
for (candidate = start; candidate <= end; ++candidate) {
if (is_armstrong(candidate)) {
printf("第一个水仙花数在范围 %d 到 %d 之间是: %d\n", start, end, candidate);
break; // 找到就退出循环
}
}
return 0;
}
```
当你运行这个程序,它将打印出范围[100, 999]内找到的第一个水仙花数。如果你需要改变查找范围,只需修改`start`和`end`变量即可。
阅读全文