水仙花数C语言代码

水仙花数::水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

一.实现原理:

  1. 循环遍历:使用do-while循环从100到999遍历所有三位数。
  2. 分解数字:对于每个数字,通过取模和除法操作,分别获取其个位、十位和百位数字。
        //个位
        int a = 0; // 定义一个整数变量a并初始化为0,用于存储num的个位数
        //十位
        int b = 0; // 定义一个整数变量b并初始化为0,用于存储num的十位数
        //百位
        int c = 0; // 定义一个整数变量c并初始化为0,用于存储num的百位数

        a = num % 10; // 获取num的个位数
        b = num / 10 % 10; // 获取num的十位数
        c = num / 100; // 获取num的百位数

3.判断条件:计算各位数字的立方和,如果等于原数字,则输出该数字。


        if (a * a * a + b * b * b + c * c * c == num) // 判断num是否为水仙花数
        {
            printf("num = %d\n", num); // 如果是水仙花数,则输出num
        }

4.递增:循环变量num递增,继续检查下一个数字。

        num++; // num加1
    } while (num < 1000); // 当num小于1000时,继续循环

 二.实现代码:

#include<stdio.h> // 包含标准输入输出库
#include<stdlib.h> // 包含标准库

void test01() // 定义一个名为test01的函数
{
    int num = 100; // 定义一个整数变量num并初始化为100
    do
    {
        //个位
        int a = 0; // 定义一个整数变量a并初始化为0,用于存储num的个位数
        //十位
        int b = 0; // 定义一个整数变量b并初始化为0,用于存储num的十位数
        //百位
        int c = 0; // 定义一个整数变量c并初始化为0,用于存储num的百位数

        a = num % 10; // 获取num的个位数
        b = num / 10 % 10; // 获取num的十位数
        c = num / 100; // 获取num的百位数

        if (a * a * a + b * b * b + c * c * c == num) // 判断num是否为水仙花数
        {
            printf("num = %d\n", num); // 如果是水仙花数,则输出num
        }
        num++; // num加1
    } while (num < 1000); // 当num小于1000时,继续循环
}

int main() // 主函数
{
    test01(); // 调用test01函数
    return 0; // 返回0,表示程序正常结束
}

三.注意事项:

  1. 循环范围:循环从100到999,因为水仙花数是三位数。
  2. 取模和除法:使用取模运算符%和除法运算符/来分解数字。
  3. 判断条件:判断各位数字的立方和是否等于原数字。
  4. 输出格式:使用printf函数输出找到的水仙花数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值