用C语言输入一个三位数,判断这个数是否是水仙花数,并输出判断结果。
时间: 2024-05-13 20:14:52 浏览: 7
水仙花数是指一个3位数,它的各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为$1^3 + 5^3 + 3^3 = 153$。
下面是实现水仙花数判断的C语言代码:
```c
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d 是水仙花数", num);
} else {
printf("%d 不是水仙花数", num);
}
return 0;
}
```
首先从用户处输入一个三位数,然后通过循环计算此数的各位数字的立方和。最后将计算结果与原数进行比较,如果相等,则该数为水仙花数,否则不是。
相关问题
用c写输入一个三位数,判断其是否为水仙花数
水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1^3+5^3+3^3=153。下面是用C语言实现判断一个三位数是否为水仙花数的代码:
```c
#include<stdio.h>
int main()
{
int num, i, j, k;
printf("请输入一个三位数:");
scanf("%d", &num);
i = num / 100; //百位数
j = (num - i * 100) / 10; //十位数
k = num % 10; //个位数
if(num == i*i*i + j*j*j + k*k*k) //判断是否为水仙花数
printf("%d是水仙花数", num);
else
printf("%d不是水仙花数", num);
return 0;
}
```
程序中先输入一个三位数,然后通过数学运算得到它的百位数、十位数和个位数,最后判断这个数是否为水仙花数并输出结果。
c语言求一个三位数各位数立方之和(用函数实现),并判断该数是否为水仙花数
好的,这是一个比较简单的题目,以下是实现代码:
```c
#include <stdio.h>
#include <math.h>
// 计算三位数各位数立方之和
int cubeSum(int num) {
int sum = 0;
while (num) {
int digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
return sum;
}
// 判断是否为水仙花数
int isNarcissisticNumber(int num) {
int sum = cubeSum(num);
return sum == num;
}
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
if (num >= 100 && num <= 999) {
printf("各位数立方之和为:%d\n", cubeSum(num));
if (isNarcissisticNumber(num)) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
} else {
printf("输入不合法\n");
}
return 0;
}
```
其中,`cubeSum`函数用于计算三位数各位数立方之和,`isNarcissisticNumber`函数用于判断是否为水仙花数。在`main`函数中,我们先通过`scanf`函数输入一个三位数,再判断是否在范围内,最后输出结果。