審題不仔細的人,極容易自作聰明的在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...