以下是使用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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录