1.
#include<stdio.h>
void main()
{
int p,q,r,sum,s,i=0;
for(p=1;p<=9;p++)
for(q=0;q<=9;q++)
for(r=0;r<=9;r++)
{
sum=p*p*p+q*q*q+r*r*r;
s=p*100+q*10+r;
if(sum==s)
{
printf("%d是水仙花数 ",s);
i++;
if(i%2==0)
printf("\n");
}
}
}
2.
#include<stdio.h>
int main()
{ int a,b,c,N;
for(N=100;N<=999;N++)
{ a=N/100; /*求四位数的反序n*/
b=(N%100)/10;
c=N%10;
if(N==a*a*a+b*b*b+c*c*c){ printf("水仙花数=%d\n",N);}
}
system("pause");
return 0;
}
3.
#include<stdio.h>
int main()
{
int i,j,k;
for (i=1;i<=9;i++)
for (j=0;j<=9;j++)
for (k=0;k<=9;k++)
{
if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
printf("水仙花数=%d\n",i*100+j*10+k);
}
system("pause");
}
4
void main()
{
int n,i,j,k; //"水仙花数"是一个三位数的数 如153=1*1*1+5*5*5+3*3*3
printf("水仙花数有:");
for(n=100;n<1000;n++) //求水仙花数的过程,i,j,k分别存放这个三位数中的每一位数
{
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);
}
printf("\n");
}
#include <math.h>
void main()
{
int i;
for(i=100;i<10000;i++)
if(i<1000)
{
if(pow(i/100,3)+pow(i/10%10,3)+pow(i%10,3)==i)
printf("%d\n",i);
}
else
{
if(pow(i/1000,4)+pow(i/100%10,4)+pow(i/10%10,4)+pow(i%10,4)==i)
printf("%d\n",i);
}
}