作者LPH66 (-858993460)
看板C_and_CPP
標題Re: [語法] 遞迴和一些語法(C
時間Tue May 25 10:04:12 2010
※ 引述《withdrawn (翔)》之銘言:
: 1.
: 學校考試題目有一題畫三角形
: 要求不能用迴圈 只能用遞迴
: 可是到現在我只會用for和寫一個prchar函式來畫
: 這題真的不知道怎麼想= =
完了我手癢了 XD
main(n,v){v*=!!~-n,putchar(v?42:10),main(n+!v,v+n*!v-!!v);}
啊? 終止? stack overflow 時就停啦 (笑)
好啦認真一點
main(n,v){n>0?scanf("%d",&v),main(-v,v):n&&main(n+!v,~-v-n*!v)+putchar(n+v?42:
10);}
(逃)
====================== 以上好孩子千萬不要學的分隔線 ======================
真的認真的啦
上篇推文的兩層遞迴是個解法 (就是把兩個 for 硬拆成兩次遞迴)
再不然就是傳兩個參數 一個記現在第幾層 一個記印了幾個
(上面兩支程式就是這麼做的)
至於推文 code 裡說的倒序問題
只要換一下遞迴呼叫的地方就可以了 (也就是先印完"前面列"再印這一行)
(上面第二支程式就是這樣)
這樣就不用把終止條件一直傳下去
當然你要多傳一個參數也是沒差啦
--
'You've sort of made up for it tonight,' said Harry. 'Getting the
sword. Finishing the Horcrux. Saving my life.'
'That makes me sound a lot cooler then I was,' Ron mumbled.
'Stuff like that always sounds cooler then it really was,' said
Harry. 'I've been trying to tell you that for years.'
-- Harry Potter and the Deathly Hollows, P.308
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92
推 VictorTom:聽說拿main來遞迴寫作業這件事小弟也回過別人的問題XDD 05/25 10:07
推 cutecpu:推短碼(Y) 05/25 10:20
推 withdrawn:感謝解答 05/25 11:00
推 costbook:這樣寫給同學過+1 05/25 12:02
推 loveme00835:對吼 XD 05/25 12:48
推 loveflames:main這樣寫好像不合標準? 05/25 14:23
推 ledia:it's better to replace n to __ and v to _ 05/25 22:16