c語言學習:求水仙花數

來源:酷知科普網 1.8W

在學習c語言中,怎麼求水仙花數,下面一起來看看吧。

操作方法

(01)水仙花數是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),是指一N位數,其各個數之N次方和等於該數。例如153、370、371及407就是三位數的水仙花數,其各個數之立方和等於該數。

c語言學習:求水仙花數

(02)方法一#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

c語言學習:求水仙花數 第2張

(03)方法二 #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("%dn ",n);}return 0;} 結果:水仙花數:153 370 371 407

c語言學習:求水仙花數 第3張

(04)方法三 #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("%dn ",n);}return 0;} 輸出結果:水仙花數:153 370 371 407

熱門標籤