C语言问题描述】输入正整数m和n(1<=m,n<=1000),输出m~n之间的所有水仙花数,水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数is(number)判断number的各位数字之立方和是否等于其自身 【输入形式】 【输出形式】 【样例输入】100,400 【样例输出】153 370 371
时间: 2024-02-29 07:51:56 浏览: 98
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身
5星 · 资源好评率100%
好的,这是一个关于水仙花数的 C 语言问题。下面是代码实现:
```
#include <stdio.h>
#include <math.h>
// 判断是否为水仙花数
int is(int number) {
int sum = 0, temp = number;
while (temp) {
sum += pow(temp % 10, 3);
temp /= 10;
}
return sum == number;
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++) {
if (is(i)) {
printf("%d ", i);
}
}
return 0;
}
```
在这个程序中,我们使用了 `is()` 函数来判断一个数是否为水仙花数。该函数首先使用一个 `while` 循环来计算该数的各个位数之立方和,然后判断这个和是否等于该数本身。接着在 `main()` 函数中,我们使用一个 `for` 循环来遍历 `m` 到 `n` 之间的所有数,对于每个数,如果它是水仙花数,则将其输出。
阅读全文