eg:
153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
#include "stdio.h"
void main()
{
int n,a,b,c;
for(n = 100 ; n <= 999 ; n++)
{
a = n / 100 ;
b = n / 10 % 10 ;
c = n % 100 % 10 ;
if(a*a*a+b*b*b+c*c*c==n)
{
printf("%d ",n);
}
}
printf("\n");
}
扩展:输入一个数,判断其是不是水仙花数。
#include "stdio.h"
void main()
{
int n,a,b,c;
printf("请输入一个三位数\n");
scanf("%d",&n);
a = n / 100 ;
b = n / 10 % 10 ;
c = n % 100 % 10 ;
if(a*a*a+b*b*b+c*c*c==n)
{
printf("该数为水仙花数\n");
}
else
{
printf("该数不是水仙花说\n");
}
}
考查知识点:
一个三位数单独取百位,十位,个位。
‘ / ’ ' % ' 的区别,一个是除法,根据数据的类型,得出值。
一个是取余数。
方法二:打印出所有水仙花数。