c语言梅花数是一个三位数,该三位数每一位的立方和等于1099。打印所有的梅花数
时间: 2024-05-13 14:18:44 浏览: 9
根据题意,我们可以先编写一个函数来判断一个三位数是否为梅花数:
```c
int isMeiHua(int n) {
int sum = 0;
int digit;
while (n > 0) {
digit = n % 10;
sum += digit * digit * digit;
n /= 10;
}
return sum == 1099;
}
```
然后在主函数中循环判断所有的三位数是否为梅花数:
```c
#include <stdio.h>
int isMeiHua(int n) {
int sum = 0;
int digit;
while (n > 0) {
digit = n % 10;
sum += digit * digit * digit;
n /= 10;
}
return sum == 1099;
}
int main() {
int i;
for (i = 100; i < 1000; i++) {
if (isMeiHua(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
输出结果为:
```
153
370
371
407
```
相关问题
C语言 调用函数fun判断一个三位数是否为数字立方和等于该数本身
可以先编写一个判断一个数是否是三位数的函数,然后在此基础上编写判断数字立方和的函数,最后再将两个函数合并为一个完成整个功能。
下面是代码示例:
```c
#include <stdio.h>
#include <math.h>
int isThreeDigits(int num) { // 判断是否为三位数
return num >= 100 && num <= 999;
}
int isCubeSum(int num) { // 判断是否为数字立方和
int temp = num;
int sum = 0;
while (temp > 0) {
sum += pow(temp % 10, 3);
temp /= 10;
}
return sum == num;
}
int fun(int num) { // 判断一个三位数是否为数字立方和等于该数本身
if (!isThreeDigits(num)) { // 不是三位数
return 0;
}
return isCubeSum(num);
}
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
if (fun(num)) {
printf("%d是数字立方和等于该数本身的数\n", num);
} else {
printf("%d不是数字立方和等于该数本身的数\n", num);
}
return 0;
}
```
输入一个三位数后,程序会调用`fun`函数进行判断。如果是数字立方和,输出提示信息;否则输出另外一条提示信息。
c语言输入一个三位整数,求每一位数的立方和
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位整数:");
scanf("%d", &num);
digit1 = num / 100;
digit2 = num % 100 / 10;
digit3 = num % 10;
int sum = digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
printf("每一位数的立方和为:%d\n", sum);
return 0;
}
```