操作方法
水仙花数是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数。
方法一 #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
方法三 #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