#include <stdio.h>
int main()
{
int i,j,k,n;
printf("水仙花數:",n);
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d\n ",n);
}
return 0;
}
輸出結果: 水仙花數:153 370 371 407 Press any key to continue 方法二:
#include <stdio.h>
#include <math.h>
int main()
{
int i,m,sum;
for(i=100;i<1000;i++)
{
sum=0;
m=i;
do
{
sum=sum+pow(m%10,3);//pow(a,b)是指a的b次冪是double型的
m=m/10;
}
while(m!=0);
if(sum==i)
printf("%d ",i);
}
printf("\n");
return 0;
}
運行結果: 153 370 371 407 Press any key to continue 方法三:
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("水仙花數:",n);
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n-i*100-j*10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d\n ",n);
}
return 0;
}
結果: 水仙花數:153 370 371 407