2736: 练33.3 水仙花数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:43 解决:20

题目描述

尼克在学习了“水仙花数”这一课后,想找出所有的“水仙花数”,但他没有足够的时间去做这件事。所以,请你试编一程序,求出所有的“水仙花数”。
说明:如果一个三位数等于它各个数位上的数字的立方和,那么这个数就是“水仙花数”。

输入

输出

一行,若干个整数,表示所有的“水仙花数”,两数之间以一个空格隔开。

样例输入 复制

样例输出 复制

153 370 371 407

提示

#include<iostream>
using namespace std;
int main( )
{
    int ge,shi,bai,i;
    //cout<<"水仙花数"<<endl;
    for(int i=100;i<1000;i++)
    { //水仙花数为三位数,从 100 循环到 999
        bai=i/100; //求出 i 的百位数
        shi=(i/10)%10; //求出 i 的十位数
        ge=i%10; //求出 i 的个位数
        if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i)
            //判断各个数位上数字的立方根和是否等于原来的数
            //等于,就是“水仙花数”;不等于,则继续进行循环
            cout<<i<<" "; //输出“水仙花数”,“ ”内有 1个空格
    }
    return 0;
}