编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0。编写main函数,输入一个数num,调用fun(num)函数,并输出判断结果。
时间: 2024-05-03 08:21:50 浏览: 19
```
#include <stdio.h>
int fun(int n) {
int sum = 0, temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == n) {
return 1;
} else {
return 0;
}
}
int main() {
int num;
printf("请输入一个三位自然数:");
scanf("%d", &num);
if (fun(num)) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
相关问题
编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0,并返回判断结果。编写main函数,输出一个数num,调用fun(num),并分析函数
以下是符合要求的回答:
```c
#include <stdio.h>
#include <math.h>
int fun(int n) {
int m, s = 0, k;
m = n;
while (m) {
k = m % 10;
s += k * k * k;
m /= 10;
}
return s == n;
}
int main() {
int num, f;
printf("输入一个数:");
scanf("%d", &num);
f = fun(num);
if (f == 1) {
printf("%d是水仙花数!", num);
} else {
printf("%d不是水仙数!", num);
}
return 0;
}
```
函数fun的作用是判断一个三位数是否为水仙花数,如果是则返回1,否则返回0。在函数中,首先将输入的三位数n赋值给变量m,然后使用while循环,每次取出m的个位数k,计算k的立方并加到变量s中,最后将m除以10,去掉个位数。当循环结束后,如果s等于n,则说明n是水仙花数,返回1,否则返回0。
在主函数main中,首先输入一个三位数num,然后调用函数fun(num)判断num是否为水仙花数,并将返回值赋给变量f。最后根据f的值输出判断结果。
相关问题:
编写程序设置一个函数通过input输入一个三位数n,判断该数是否为水仙花数
好的,这里是一个 Python 程序,实现了判断一个三位数是否为水仙花数的功能:
```python
def is_narcissistic_number(n):
# 将数字转换为字符串
n_str = str(n)
# 计算各个位数上的数字的立方和
sum = 0
for c in n_str:
sum += int(c) ** 3
# 判断是否为水仙花数
if sum == n:
return True
else:
return False
# 从用户输入中获取一个三位数
n = int(input("请输入一个三位数:"))
# 判断该数是否为水仙花数
if is_narcissistic_number(n):
print(f"{n} 是水仙花数")
else:
print(f"{n} 不是水仙花数")
```
这个程序定义了一个名为 `is_narcissistic_number` 的函数,接受一个整数参数 `n`,判断该数是否为水仙花数。函数首先将数字转换为字符串,然后计算各个位数上的数字的立方和,最后比较和原数是否相等,如果相等则说明该数为水仙花数,返回 True,否则返回 False。
在主函数中,我们使用 `input` 函数获取一个三位数,并调用 `is_narcissistic_number` 函数判断该数是否为水仙花数,并输出结果。
需要注意的是,这里的程序只适用于三位数,如果需要判断更高位数的水仙花数,可以将计算立方和的代码进行修改。