c程序練習,求0—7 所能組成的奇數個數

摘:算法思想:
這個問題其實是一個排列組合的問題,設這個數爲sun=a1a2a3a4a5a6a7a8,a1-a8表示這個數的某位的數值,
當一個數的最後一位爲奇數時,那麼這個數一定爲奇數,不管前面幾位是什麼數字。如果最後一位數爲偶數,
則這個數一定爲偶數。
a1-a8可以取0-7這個八個數字,首位數字不爲0。
從該數爲一位數到該數爲8位數開始統計奇數的個數:
1.當只有一位數時也就是該數的最後一位,奇數個數爲4
2.當該數爲兩位數時,奇數個數爲4*7=28
3.當該數爲三位數時,奇數個數爲:4*8*7=224
                     。
                     。
                     。

8.當該數爲八位數時,奇數個數爲:4*8*8*8*8*8*8*7(依次爲最後一位到第一位)

 1 #include<stdio.h>
 2 int main(int agrc, char*agrv[])
 3 {
 4     long sum = 4, s = 4;//sum的初始值爲4表示,只有一位數字組成的奇數個數爲4個
 5     int j;
 6     for (j = 2; j <= 8; j++)
 7     {    
 8         printf("%d位數爲奇數的個數%ld\n", j-1, s);
 9         if (j <= 2)
10             s *= 7;
11         else
12             s *= 8;
13         sum += s;    
14     }
15     printf("%d位數爲奇數的個數%ld\n", j-1, s);
16     printf("奇數的總個數爲:%ld\n", sum);
17     system("pause");
18     return 0;
19 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章