四個小時不止是敲了30多行程式碼,還懂了好多
阿新 • • 發佈:2018-11-17
在某網頁看到一題目為:求出0~999之間的所有“水仙花數”並輸出。“水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。
#include <stdio.h> #include <math.h> int main() { int i=0; //int sum = 0;如果sum定義在了For迴圈外面,那麼sum的值就會一直累加 for(i=0;i<1000;i++) { int temp =0; int a = 0 ; temp = i ; //求數字的位數 while (temp) { a++; temp=temp/10; } //求各位數的a次方的和 temp=i; int sum = 0; //sum只有定義在for迴圈裡面才可以隨著For迴圈語句的每次變化而清零 while (temp) { int b = temp%10; int b = 0; //sum =sum + pow(b, a); //因為有:pow(double,double) pow(float,float) 所以匹配錯了。 sum =sum + pow((double)b,(double) a); //強制轉換型別 temp=temp/10; } if(sum==i) { printf("%d ",i); } } return 0; }