用c语言输入两个正整数m和n,输出m和n之间所有满足各位数字的立方和等于其本身的数。要求定义和调用函数判断给定的数是否满足上述要求。
时间: 2024-02-13 08:00:01 浏览: 45
好的,这是一个关于 C 语言的编程问题。为了实现该功能,我们可以先定义一个函数来判断一个数是否满足各位数字的立方和等于其本身。然后在主函数中输入两个正整数 m 和 n,遍历它们之间的所有数,调用该函数判断是否符合条件,如果符合就输出该数。
以下是实现该功能的代码:
```
#include <stdio.h>
#include <math.h>
int is_cubic_num(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
printf("%d和%d之间所有满足各位数字的立方和等于其本身的数为:\n", m, n);
for (int i = m; i <= n; i++) {
if (is_cubic_num(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个函数 `is_cubic_num()`,该函数接受一个整数作为参数,返回一个布尔值,表示该数是否满足各位数字的立方和等于其本身。该函数实现方法是将给定的数每个位上的数字的立方相加,最后判断是否等于该数本身。
在主函数中,我们先输入两个正整数 m 和 n,然后遍历它们之间的所有数,调用 `is_cubic_num()` 函数判断是否符合条件,如果符合就输出该数。
希望这个代码能够帮到你,如果有任何问题请随时询问。