天天看點

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 }

繼續閱讀