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

看板C_and_CPP (C/C++)作者 (順風相送)時間6年前 (2018/07/17 17:21), 編輯推噓3(302)
留言5則, 3人參與, 6年前最新討論串7/29 (看更多)
聽說 C 比較難寫,一下子想不到什麼好的 macro 作法,只好這樣攤開來 /* https://ideone.com/yKNrXd */ #define eval(x,y) { printf("%2d x %2d = %2d\n",(x),(y),(x)*(y)); } #define eval3(x,y) { eval(x,y); eval((x),(y)+1); eval((x),(y)+2); } #define eval9(x) { eval3(x,1); eval3((x),4); eval3((x),7); } #define eval39(x) { eval9(x); eval9((x)+1); eval9((x)+2); } #define eval99() { eval39(1); eval39(4); eval39(7); } #include <stdio.h> int main(void) { eval99(); return 0; } -- 桃樂絲: 可是, 如果你沒有頭腦, 為什麼會說話? 稻草人: ㄝ, 我也不知... 但是有些人沒有頭腦也能說超~多話呢。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.32.48 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1531819282.A.ABB.html

07/17 17:33, 6年前 , 1F
07/17 17:33, 1F

07/17 20:14, 6年前 , 2F
好像湊不到比這個更少的了。 3^4 = 81, 3*4 = 12(最少了)
07/17 20:14, 2F

07/17 20:24, 6年前 , 3F
這個把巨集攤開,好像就跟1x1寫到9x9一樣對吧?
07/17 20:24, 3F

07/17 21:26, 6年前 , 4F
對,只花了 12 個 eval 就辦到了,比 9 * 2 = 18個還少
07/17 21:26, 4F

07/18 06:11, 6年前 , 5F
07/18 06:11, 5F
文章代碼(AID): #1RJRKIgx (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1RJRKIgx (C_and_CPP)