用c语言输入一个三位数判断是否为水仙花数使用Switch分支
时间: 2024-10-15 15:07:44 浏览: 15
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
如果你想用switch分支结构来检查一个三位数是否为水仙花数,可以这样做:
```c
#include <stdio.h>
int is_armstrong_number(int num) {
int digits[3];
int sum = 0;
// 分割百位、十位和个位
digits[0] = num / 100; // 百位
digits[1] = (num % 100) / 10; // 十位
digits[2] = num % 10; // 个位
// 使用switch分支计算每位数立方并累加
switch(digits[0]) {
case 0:
return sum == digits[0]; // 如果百位是0,直接比较总和是否等于0
default:
sum += pow(digits[0], 3); // 计算百位的立方
break;
}
// 对于十位和个位做同样操作
switch(digits[1]) {
case 0:
return sum == digits[1]; // 如果十位是0,继续比较
default:
sum += pow(digits[1], 3);
break;
}
// 最后一位
switch(digits[2]) {
case 0:
return sum == digits[2]; // 如果个位是0,最后比较
default:
sum += pow(digits[2], 3);
}
// 判断是否为水仙花数
return sum == num;
}
int main() {
int input;
printf("请输入一个三位数: ");
scanf("%d", &input);
if(is_armstrong_number(input)) {
printf("%d 是水仙花数。\n", input);
} else {
printf("%d 不是水仙花数。\n", input);
}
return 0;
}
```
阅读全文