使用C语言实现输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。
时间: 2023-06-19 11:07:46 浏览: 176
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位的正整数:");
scanf("%d", &num);
digit1 = num / 100; // 百位数字
digit2 = (num / 10) % 10; // 十位数字
digit3 = num % 10; // 个位数字
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
代码中,首先通过 `scanf` 函数获取用户输入的三位正整数。然后,通过数学运算分别计算出该数的百位、十位和个位数字。接着,判断该数是否为水仙花数,如果是,则输出“是水仙花数”,否则输出“不是水仙花数”。
相关问题
在c语言中输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3)
在C语言中,你可以通过以下步骤编写程序来判断一个三位正整数是否为水仙花数:
1. 首先,从用户那里获取一个三位正整数的输入。可以使用`scanf`函数,例如:
```c
int num;
printf("请输入一个三位正整数:");
scanf("%d", &num);
```
2. 确保输入的是三位数,如果不是则提示用户重新输入:
```c
if (num < 100 || num > 999) {
printf("输入错误,请输入一个三位数:");
scanf("%d", &num); // 重复上述步骤
}
```
3. 将这个数分解成百位、十位和个位的数字。由于C语言不直接提供这样的功能,你需要手动处理,可以除以100取百位,再除以10减去上一步的结果得到十位,最后剩下的就是个位:
```c
int digit1 = num / 100; // 百位
int digit2 = (num - digit1 * 100) / 10; // 十位
int digit3 = num % 10; // 个位
```
4. 计算每个数字的立方并检查它们之和是否等于原始数字:
```c
int cubeSum = digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
if (cubeSum == num) {
printf("%d 是一个水仙花数。\n", num);
} else {
printf("%d 不是水仙花数。\n", num);
}
```
输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。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;
}
```
注释已加在代码中。
阅读全文