您的位置:首页 > 编程语言 > C语言/C++

求出0-999之间的所有水仙花数

2018-03-21 21:32 225 查看
呵!水仙花数
这是什么啊???(黑人问号脸)
我去百度了一下

“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3,则153是一个“水仙花数”。

    在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
    例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。

407 = 4^3 + 0^3 + 7^3。
那么问题来了
代码怎么写???
思考了一下
用自己的思维表示一下

水仙花数=个位的数^ 3+十位的数^3+百位的数^ 3
那我们把这个水仙花数定义为i,百位的就定为hundreds
十位的为i除100的余数除10,以此类推
代码如下:
#include<stdio.h>int main(){    int i = 0;    int hundreds = 0;    int decade = 0;    int unit = 0;//定义变量    for (i = 0; i <= 999; i++)//限定水仙花数的取值范围,0-999    {        if (i/100 != 0)//因为是一个三位数,所以一定是比100大的        {            hundreds = i / 100;            decade = i % 100 / 10;            unit = i % 10;//表示各个位的数                        if (i == (hundreds*hundreds*hundreds + decade*decade*decade + unit*unit*unit))//定义表示            {                printf("%d\n", i);//输出            }        }    }        return 0;}运行结果如下:



真是so easy呢
郑辛宇666
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言学习
相关文章推荐