Re: [問題] 九九乘法表不用迴圈是叫我直接從1列到81?

看板C_and_CPP (C/C++)作者 (松鼠)時間6年前 (2018/07/21 02:21), 編輯推噓17(1700)
留言17則, 16人參與, 最新討論串13/29 (看更多)
※ 引述《red0whale (red whale)》之銘言: : 剛才做題目, : https://i.imgur.com/NI4TYj5.jpg
: 不用迴圈叫我列九九乘法表是哪招? : 說實在我真想不到不用迴圈就能簡單列出九九乘法表的方法了 不用 iteration,就用 recursion,順便預測出題者還不准你用乘法操作。 這裡提供一份實作程式碼: #include <stdio.h> int mul(int x, int y) { if (!x || !y) return 0; return x + mul(x, y - 1); } void table_row(int x, int y) { if (y > 1) table_row(x, y - 1); printf("%d x %d = %2d | ", x, y, mul(x, y)); } void mult_table(int x, int y) { if (x > 1) mult_table(x - 1, y); table_row(x, y); printf("\n"); } int main() { mult_table(9, 9); return 0; } 參考輸出: 1 x 1 = 1 | 1 x 2 = 2 | 1 x 3 = 3 | 1 x 4 = 4 | 1 x 5 = 5 ... 2 x 1 = 2 | 2 x 2 = 4 | 2 x 3 = 6 | 2 x 4 = 8 | 2 x 5 = 10 ... 3 x 1 = 3 | 3 x 2 = 6 | 3 x 3 = 9 | 3 x 4 = 12 | 3 x 5 = 15 ... ... 9 x 1 = 9 | 9 x 2 = 18 | 9 x 3 = 27 | 9 x 4 = 36 | 9 x 5 = 45 ... 乍看可滿足題目要求,不過仍有大量改進空間: 1. 乘法實作可避免大量重複的加法; 2. 九九乘法中 3 * 8 和 8 * 3 的輸出數值相等,這類運算也可避免; 3. 實作用到三個遞迴函式,可縮減; 4. if (x > 1) 和 if (y > 1) 這類比較也可縮減次數,甚至免去比較 (美妙的 bitwise 操作); 5. 改善輸出的排版; 我想將上述改進項目丟給學生當作業 (*笑*) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.82.61 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1532110905.A.FBD.html

07/21 07:29, 6年前 , 1F
神來惹
07/21 07:29, 1F

07/21 07:46, 6年前 , 2F
推唷
07/21 07:46, 2F

07/21 09:04, 6年前 , 3F
神來了~~~
07/21 09:04, 3F

07/21 09:09, 6年前 , 4F
野生的jserv出現了!
07/21 09:09, 4F

07/21 09:59, 6年前 , 5F
原來是答題呀,我還以為在出作業呢(X
07/21 09:59, 5F

07/21 10:05, 6年前 , 6F
07/21 10:05, 6F

07/21 11:10, 6年前 , 7F
幸好我修過啦……(咦?
07/21 11:10, 7F

07/21 11:59, 6年前 , 8F
跪著讀這篇
07/21 11:59, 8F

07/21 12:49, 6年前 , 9F
老師來出題目了XD
07/21 12:49, 9F

07/21 23:11, 6年前 , 10F
動態規劃會不會比較好?
07/21 23:11, 10F

07/22 12:53, 6年前 , 11F
看到關鍵字 美妙,bitwise,作業 就知道大神駕到larr
07/22 12:53, 11F

07/23 00:18, 6年前 , 12F
有大神就給推
07/23 00:18, 12F

07/23 09:35, 6年前 , 13F
07/23 09:35, 13F

07/29 18:09, 6年前 , 14F
<(—_—)>
07/29 18:09, 14F

08/28 00:18, 6年前 , 15F
弱弱的問一下 !x || !y 是什麼概念
08/28 00:18, 15F

08/28 04:34, 6年前 , 16F
樓上,x==0或y==0 就變true
08/28 04:34, 16F

10/21 23:15, , 17F
精湛 爬文學到一課
10/21 23:15, 17F
文章代碼(AID): #1RKYWv-z (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1RKYWv-z (C_and_CPP)