1、水仙花数是什么?
水仙花数是一个“自幂数”
自幂数:自幂数是指一个n位数,它的每位上的数字的n次幂之和等于它本身。(例如:当n为3时,有1^3+5^3+3^3=153,153即是n为3时的一个自幂数)
自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084
······
2、水仙花数该怎么算?
首先是要将个位、十位、百位上的数字单个表示:个位上的数字可以用取余获得:a=n%10;百位上的数字用取商获得:c=n/100;十位上的数字可综合得出:b=n/10-c*10;或者b=(n%100-a)/10;
3、水仙花的代码实现:
#include<stdio.h>
int main()
{int n=100,j=0;//j用来记录有几个水仙花数int a,b,c;//a代表个位数字,b代表十位数字,c代表百位数字for(n=100;n<1000;n++)//遍历整个水仙花数的范围(水仙花数是三位数){a=n%10;c=n/100;b=n/10-c*10;//或者:b=(n%100-a)/10;if(n==a*a*a+b*b*b+c*c*c){printf("%d\t",n);j++;}}printf("\n一共%d位水仙花数\n",j);return 0;
}
显示结果: