为了账号安全,请及时绑定邮箱和手机立即绑定

各位前辈谁能讲一下,谢谢!

#include <stdio.h>

int main()

{

    //定义三位数num,个位数sd,十位数td,百位数hd

    int num, sd, td, hd;

    //循环所有三位数

    for(   ?  ;  ?   ;    ?  )

    {

        //获取三位数字num百位上的数字

        hd =        ?         ;

        //获取三位数字num十位上的数字

        td =        ?         ;

        //获取三位数字num个位上的数字

        sd =        ?         ;

        //水仙花数的条件是什么?

        if(     ??                 ) 

        {

            printf("水仙花数字:%d\n", num);    

        }

    }

    return 0;    

}


正在回答

3 回答

思路:水仙花数的条件1、三位数---->范围在100~1000之间---->for语句为for(num=100;num<1000;num++);

                                  2、满足a*100+b*10+c=a*a*a+b*b*b+c*c*c--------->if判断条件为

                                                        if(num == hd*hd*hd + td*td*td + sd*sd*sd);

            剩下的就只有求三位数的个、十、百位的问题;依据int数据类型特点,num/100可以取到num的百位上的数字,num%100/10得到num的十位数字,num%10或num%100%10得到num的个位数字,所以完整解答如下:

#include <stdio.h>

int main()

{

    //定义三位数num,个位数sd,十位数td,百位数hd

    int num, sd, td, hd;

    //循环所有三位数

    for(   num=100  ;  num<1000   ;    num++  )

    {

        //获取三位数字num百位上的数字

        hd = num/100;

        //获取三位数字num十位上的数字

        td =num%100/10;

        //获取三位数字num个位上的数字

        sd =num%100%10;

        //水仙花数的条件是什么?

        if( num==hd*hd*hd+td*td*td+sd*sd*sd ) 

        {

            printf("水仙花数字:%d\n", num);    

        }

    }

    return 0;    

}


5 回复 有任何疑惑可以回复我~

#include <stdio.h>
int main()
{
    //定义三位数num,个位数sd,十位数td,百位数hd
    int num, sd, td, hd;
    //循环所有三位数
    for(   num=100  ; num<1000   ; num++  )
    {
        //获取三位数字num百位上的数字
        hd =  num/100            ;
        //获取三位数字num十位上的数字
        td =num%100/10         ;
        //获取三位数字num个位上的数字
        sd =num%10        ;
        //水仙花数的条件是什么?
        if(num==hd*hd*hd+td*td*td+sd*sd*sd               )
        {
            printf("水仙花数字:%d\n", num);   
        }
    }
    return 0;   
}

1 回复 有任何疑惑可以回复我~

  for(num=100;num<1000;num++)

    {

        //获取三位数字num百位上的数字

        hd =num/100;

        //获取三位数字num十位上的数字

        td =num/10 - hd*10;

        //获取三位数字num个位上的数字

        sd =num - hd*100 - td*10;

        //水仙花数的条件是什么?

        if(num == hd*hd*hd + td*td*td + sd*sd*sd) 

        {

            printf("水仙花数字:%d\n", num);    

        }

    }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

各位前辈谁能讲一下,谢谢!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信