输入一个整数(100~999),判断该数是不是水仙花数。如果是水仙花数,输出1,否则输出0.要求水仙花数的判断使用自定义函数实现,完成水仙花数判断的自定义函数 int func(int n)的设计,提交代码时连同主函数一同提交。
时间: 2024-02-13 09:00:46 浏览: 21
好的,这是您的问题:输入一个整数(100~999),判断该数是不是水仙花数。如果是水仙花数,输出1,否则输出0。要求水仙花数的判断使用自定义函数实现,完成水仙花数判断的自定义函数 int func(int n)的设计,提交代码时连同主函数一同提交。
以下是代码实现,其中 func 函数用于判断一个整数是否为水仙花数:
```c
#include <stdio.h>
#include <math.h>
int func(int n) {
int sum = 0;
int temp = n;
while (temp) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == n;
}
int main() {
int n;
scanf("%d", &n);
printf("%d", func(n));
return 0;
}
```
其中,func 函数的实现思路是,先将输入的整数 n 赋给一个临时变量 temp,然后对 temp 进行循环,每次取出 temp 的个位数 digit,计算 digit 的三次方,并将结果累加到变量 sum 中。循环完成后,比较 sum 和 n 是否相等,如果相等则说明 n 是水仙花数。最后在主函数中调用 func 函数,输出结果即可。
相关问题
python输入一个三位整数,若输入的数是水仙花数,输出Yes否则输出No
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。因此,我们可以使用以下代码来判断输入的数是否为水仙花数:
```python
num = int(input("请输入一个三位整数:"))
if num >= 100 and num <= 999:
a = num // 100
b = num % 100 // 10
c = num % 10
if num == a**3 + b**3 + c**3:
print("Yes")
else:
print("No")
else:
print("输入的数不是三位整数!")
```
代码首先判断输入的数是否为三位整数,如果不是,则输出提示信息;如果是,则将该数的百位、十位和个位分别提取出来,计算其立方和,与原数比较,如果相等则输出"Yes",否则输出"No"。
c语言 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。
以下是代码实现:
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int num) {
int sum = 0, n = num;
while (n > 0) {
sum += pow(n % 10, 3);
n /= 10;
}
return sum == num;
}
int main() {
int n;
printf("请输入一个三位的正整数:");
scanf("%d", &n);
printf("100~%d范围内的水仙花数有:", n);
for (int i = 100; i <= n; i++) {
if (isNarcissistic(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
函数`isNarcissistic`中,先将输入的整数拆分成个位、十位和百位,计算每位的立方和,并与原数比较,判断是否为水仙花数。在主函数中,循环遍历100到输入的整数n,判断每个数是否为水仙花数,是则输出。