求1000以内的所有水仙花数

img
为什么啥也没输出出来?哪里出错了?

b=n/10就行了,你的b表达式错了。随便举个123当例子就能看出来b不对

你这提取的也不对啊,应该这么写

g = n % 10
s = n / 10 % 10
b = n / 100

供参考:

#include<stdio.h>
int main()
{
    int g, s, b, n;
    for (n = 100; n < 1000; n++)
    {
        g = n % 10;
        s = n / 10 % 10;
        b = n / 100;
        if (n == g * g * g + s * s * s + b * b * b)
            printf("%d ",n);
    }
    return 0;
}

img

#include <cmath>
#include <cstdio>

int main()
{ 
    for (int x = 1; x <= 9; x++)
        for (int y = 0; y <= 9; y++)
            for (int z = 0; z <= 9; z++)
                if ((x*100 + y*10 + z) == (pow(x,3) + pow(y,3) + pow(z,3)))
                    printf("%d\n", x*100 + y*10 + z);
    return 0;
}