C语言求解水仙花数

一、什么是水仙花数:

水仙花数被称为超完全数字不变数,也就是指三位数中,他的每一位(百位、十位、个位)数字的三次幂之和等于他本身。

例如:1*1*1+5*5*5+3*3*3=153。

二、设计思路:

1.可以利用循环将100-999之间的数字寻找一遍。

2.

2.1将个个位数求三次幂之和与组合起来的数字进行比较;

2.2将100-999之间的数字进行拆分,再求和比较;

三、代码实现:

3.1利用思路2.1求解:

#include<stdio.h>
int main()
{
    int a,b,c,num1,num2;//百位:a;  十位:b;  个位:c; 
                        //num1: 每一位三次幂之和;  num2:水仙花数
     for(a=1;a<=9;a++)//百位循环
    {
        for(b=0;b<=9;b++)//十位循环
        {
            for(c=0;c<=9;c++)//个位循环
            {
                num1=a*a*a+b*b*b+c*c*c;
                num2=a*100+b*10+c;
                if(num1==num2)//判断是否为水仙花数
                {
                    printf("%d\t",num2);
                }                
            }
        }
    } 
    return 0;
}

3.2 利用思路2.2求解:

#include<stdio.h>
int main()
{
    int a,b,c,num;    
    for(num=100;num<1000;num++)
    {
        a=num/100;//取得数字的百位
        b=num/10%10;//取得数字的十位
        c=num%10;//取得数字的个位
        if(num==a*a*a+b*b*b+c*c*c)//条件比较
        {
            printf("%d\t",num);//输出
        }
    }
    return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值