本篇主要分析了水仙花数的各种求法。“水仙花数”也叫做“阿姆斯特朗数”,是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,以为153=1³+5³+3³.
一、水仙花数的由来
1、为什么叫水仙花数
经过上面的介绍,都知道了“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。那么为什么会叫“水仙花数”呢?这么好听的名字……
原来,她的兄弟姐妹的名字也个个都好听>>>>>>
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
看到这个十全十美数就真的懂了,“水仙花数”果然没叫错。
2、水仙花数的家族
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477
二、基础版水仙花数
1、分析:
(1)因为“水仙花数”是一个三位数,因此可以用3个变量a,b,c来分别表示百位数、十位数、个位数;
(2)准备3个循环来遍历,因为百位数不能是0,所以a从1到9循环;
(3)而十位数和个位数可以是0,所以b、c从0循环到9
2、参考代码:
#include <stdio.h>
#include <math.h>
main()
{
int a, b, c;
printf("水仙花数有:\n");
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c