C 邏輯題 0 7所有的奇數

2021-08-02 23:01:25 字數 824 閱讀 8586

審題不仔細的人,極容易自作聰明的在77777777範圍內去計算奇數的個數。

忽略了數字8,9的缺失。

笨一點的方法是用8個for迴圈來拼數字,此種做法只需要顧忌最高位不為零的情況即可。

但本題的最佳思路如下:

1,組成的數字不一定非得是8位數,從一位到八位都可以。首先繞過慣性思維這個坑。

2,既然是奇數,那麼末尾只能是1,3,5,7。所以個位數所有的可能情況是4。

3,最高位不能為0,所以最高位的選擇只能是7。

4,其餘位置的選擇都可以有8種,這裡假設位數為x,所有組合為y,得到如下關係:

x=1

y=4,

x=2, y=4

*7,x=3, y=4

*7*8

x=3, y=4

*7*8

*8x=3, y=4

*7*8

*8*8

x=3, y=4

*7*8

*8*8

*8x=3, y=4

*7*8

*8*8

*8*8

x=3, y=4

*7*8

*8*8

*8*8

*8很容易可以發現,乙個for迴圈就可以搞定,**如下:

void main()

printf("\n能組成的奇數的總數為: %ld", sum);

c語言經典演算法 求0 7 所能組成的奇數個數

題目 求0 7 所能組成的奇數個數。演算法思想 這個問題其實是乙個排列組合的問題,設這個數為sun a1a2a3a4a5a6a7a8,a1 a8表示這個數的某位的數值,當乙個數的最後一位為奇數時,那麼這個數一定為奇數,不管前面幾位是什麼數字。如果最後一位數為偶數,則這個數一定為偶數。a1 a8可以取...

力扣 1588 所有奇數長度子陣列的和 C

給你乙個正整數陣列 arr 請你計算所有可能的奇數長度子陣列的和。子陣列 定義為原陣列中的乙個連續子串行。請你返回 arr 中 所有奇數長度子陣列的和 示例 1 輸入 arr 1 4,2 5,3 輸出 58 解釋 所有奇數長度子陣列和它們的和為 1 1 4 4 2 2 5 5 3 3 1,4,2 7...

C 上機 第四周 任務1 1 輸出所有的奇數

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 輸出所有的奇數 作 者 薛廣晨 完成日期 2011 年 09 月 16 日 版 本號 x1.0 對任務及求解方法的描述部分 輸入描述 問題描述 編寫乙個控制台應用。輸入一組整數,輸出所有的奇數 程式輸出 程式頭部的注釋結束 using system...