weixin_70256302 2022-05-30 15:03 采纳率: 100%
浏览 36
已结题

abcABC_123

有一种数字比较特别,称为“水仙花数”,这样的数是指:该数是3 位数,其各位数字的
立方和等于该数本身。例如,153 就是一个水仙花数,因为 153=1~+5*+3°。
请编写程序,打印出所有的水仙花数。
提示:如果要判断某个三位数 number 是否为水仙花数,可以这样判断:
假设该三位数的个位数为 a,十位数为 b,百位数为 c.
a=number%10;
b=
;(请思考,并在空白处填写合适的内容)
c=number/100;
如果 number-a'+b'+e',則该数就是水仙花数。
如果希望将所有的水仙花数打出来,则需要使用循环来按照以上提示依次判断从 100~
999 的每个数是否为水仙花数。
请分别用循环的三种结构来编写程序:while 结构、do-while 结构、for 结构。

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-05-30 16:20
    关注

    供参考:

    #include <stdio.h>
    int main()
    {
        int a, b, c;
        int i;
        for (i = 100; i <= 999; i++)
        {
            a = i / 100;
            b = i / 10 % 10;
            c = i % 10;
            if ((a * a * a + b * b * b + c * c * c) == i)
                printf("%d\n", i);
        }
        return 0;
    }
    
    
    
    #include <stdio.h>
    int main()
    {
        int i = 100, n, k, s;
        while (i < 1000) {
            n = i; s = 0;
            while (n) {
                k = n % 10;
                s += k * k * k;
                n /= 10;
            }
            if (s == i)
                printf("%d\n", i);
            i++;
        }
        return 0;
    }
    
    
    #include <stdio.h>
    int main()
    {
        int i = 100, n, k, s;
        do{
            n = i; s = 0;
            while (n) {
                k = n % 10;
                s += k * k * k;
                n /= 10;
            }
            if (s == i)
                printf("%d\n", i);
            i++;
        } while (i < 1000);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 创建了问题 5月30日

悬赏问题

  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了