水仙花数多种代码(只是总结)

来源:互联网 发布:李旭老师网络课程 编辑:程序博客网 时间:2024/05/21 15:38

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

#include<stdio.h>
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");
}
5
#include <stdio.h>
#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);
}
}
0 0
原创粉丝点击