c语言:3种方法;求出0~999之间的所有“水仙花数”并输出。
程序员文章站
2022-09-28 18:23:05
方法一:
#include
int main()
{
int i,j,k,n;
printf("水仙花数:"...
方法一:
#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