鱼C论坛

 找回密码
 立即注册
查看: 1733|回复: 6

[已解决]老哥们,c++打印水仙花数只能用do...while写吗?

[复制链接]
发表于 2021-3-26 00:33:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用while循环和if都写不出来,程序根本不走字!
大哥们能帮我看看是哪里出了问题吗


#include<iostream>
using namespace std;

int main()
{
        int i = 100;
        int a = 0;
        int b = 0;
        int c = 0;
        a = i % 10;
        b = i / 10 % 10;
        c = i / 100 % 10;
        while (a * a * a + b * b * b + c * c * c == i&&i<1000)
        {
                cout << i << endl;
                i++;
        }




        system("pause");
        return 0;
}
最佳答案
2021-3-26 01:27:33
#include<iostream>
using namespace std;

int main(void)
{
        int a , b , c , i                                                    ;
        for(i = 100 ; i < 1000 ; i ++) {
                a = i / 100     ;
                b = i / 10 % 10 ;
                c = i % 10      ;
                if(a * a * a + b * b * b + c * c * c == i) cout << i << endl ;
        }
        system("pause")                                                      ;
}
        编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
153
370
371
407
请按任意键继续. . .

D:\00.Excise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-26 00:36:56 | 显示全部楼层
for item in range(100, 1000):
    ge = item%10   #个位
    shi = item//10%10 #十位
    bai = item//100  #百位
    #print(bai,shi,ge)
    #判断
    if ge**3+shi**3+bai**3==item:
        print(item)

这是我用pycharm写的,虽然语言不一样,但是可以用if显得简洁很多啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 01:27:33 | 显示全部楼层    本楼为最佳答案   
#include<iostream>
using namespace std;

int main(void)
{
        int a , b , c , i                                                    ;
        for(i = 100 ; i < 1000 ; i ++) {
                a = i / 100     ;
                b = i / 10 % 10 ;
                c = i % 10      ;
                if(a * a * a + b * b * b + c * c * c == i) cout << i << endl ;
        }
        system("pause")                                                      ;
}
        编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
153
370
371
407
请按任意键继续. . .

D:\00.Excise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-26 01:31:34 | 显示全部楼层

就是说要用到for是吧,我明白了,谢谢老哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 01:36:15 | 显示全部楼层
int main()
{

        int a = 0, b = 0, c = 0;
        for(int i = 100; i < 1000; i++)
        {
                a = i % 10;
                b = i / 10 % 10;
                c = i / 100 % 10;
                if (a * a * a + b * b * b + c * c * c == i)
                {
                        cout << i << endl;
                }
        }

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 01:36:57 | 显示全部楼层
来迟了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 09:17:49 | 显示全部楼层
本帖最后由 yuxijian2020 于 2021-3-26 09:20 编辑

我也来晚了,那我就多给你整几个
#include<iostream>

using namespace std;

void WhileLoop()
{
    int a = 0, b = 0, c = 0, i = 100;
    while (i < 1000)
    {
        a = i % 10;
        b = i / 10 % 10;
        c = i / 100 % 10;
        if ((a * a * a + b * b * b + c * c * c) == i)
            printf_s("%d\n", i);
        i += 1;
    }
}

void DoWhileLoop()
{
    int i = 100;
    int a = 0, b = 0, c = 0;

    do
    {
        a = i % 10;
        b = i / 10 % 10;
        c = i / 100 % 10;
        if ((a * a * a + b * b * b + c * c * c) == i)
            printf_s("%d\n", i);
        i += 1;

    } while (i < 1000);
}

int main()
{
    printf_s("WhileLoop-------\n");
    WhileLoop();
    printf_s("DoWhileLoop-------\n");
    DoWhileLoop();

    return 0;
}
WhileLoop-------
153
370
371
407
DoWhileLoop-------
153
370
371
407
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 17:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表