C语言判断水仙花数:代码示例及解析
以下是使用C语言编写的程序,可以判断一个3位正整数是否为'水仙花数':
#include <stdio.h>
int main() {
int num;
while (1) {
printf("请输入一个3位正整数:");
scanf("%d", &num);
if (num >= 100 && num <= 999) {
int digit1 = num / 100;
int digit2 = (num / 10) % 10;
int digit3 = num % 10;
int sum = (digit1 * digit1 * digit1) + (digit2 * digit2 * digit2) + (digit3 * digit3 * digit3);
if (sum == num) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
break;
} else {
printf("输入无效,请重新输入\n");
}
}
return 0;
}
程序解析:
- 定义变量: 首先,定义一个整型变量
num来存储用户输入的数字。 - 循环输入: 程序使用一个无限循环
while (1)来反复接收用户输入,直到输入一个有效的3位正整数。 - 判断3位数: 首先判断输入的数字是否在100到999之间,如果不是则输出提示信息并继续循环。
- 提取数字: 如果输入的数字是3位数,则使用除法和取余操作分别提取出该数字的百位、十位和个位数字。
- 计算立方和: 使用
digit1 * digit1 * digit1等表达式计算各个位数字的立方,并将结果相加得到立方和。 - 判断结果: 最后将立方和与原数进行比较,如果相等则输出该数是'水仙花数',否则输出该数不是'水仙花数'。
什么是水仙花数?
'水仙花数'是指一个3位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
本程序使用简单易懂的代码结构,可以帮助您理解如何使用C语言判断一个数字是否为'水仙花数'。您可以在此基础上进行扩展,例如编写程序判断n位'水仙花数'。
原文地址: https://www.cveoy.top/t/topic/bwts 著作权归作者所有。请勿转载和采集!