→ a26573633:不知道大家看不看的懂...... 10/04 11:41
→ DEATHX:我沒看到你的虛擬碼裡面有自己call自己的地方? 10/04 11:54
→ blackwindy:先問你 "遞迴"的定義是甚麼? 10/04 11:54
→ a26573633:如果抓到+-*就要call自己吧?! 10/04 11:57
→ a26573633:遞迴不是一個函數會CALL自己,然後一層一層跑下去,在一層 10/04 11:59
→ a26573633:一層算回來? 10/04 11:59
推 BlazarArc:你可以先思考一下F的功能是什麼 10/04 12:06
→ BlazarArc:比如說 F 是要 算出 *23 的結果, input 跟 return 為何? 10/04 12:06
→ BlazarArc:然後再想 F 對 +1+*23*45 使用的話會是如何 10/04 12:07
→ blackwindy:先寫個簡單練習 F(x)=F(x-1)+2, F(0)=5, x>0 10/04 13:22
int F(int x)
if (x==0) return 5 ; EX: x=3
return F(x-1) + 2 ; F(3)=F(2)+2
F(2)=F(1)+2
F(1)=F(0)+2
F(0)=5
這樣對嗎??
※ 編輯: a26573633 來自: 140.114.136.37 (10/04 13:39)
→ blackwindy:既然會的話就會寫了吧 差不多的東西 10/04 13:45
想了很久,還在想= =,像是上面這一題,x代一個數字就
直接進F(x)去跑,遞迴F(x-1),,,繼續跑,但如果是像
+1+*23*45這種,要如何進入F()函數,一樣F(int x)?
是不是我C哪裡漏學了.....還是腦袋瓜卡住了
→ blackwindy:多想想就好,另外你可以搭配全域變數使用 10/04 13:45
推 EdisonX:這題是不是從字串後面跑到前面比較容易啊 ?? 10/04 13:51
→ EdisonX:從後面跑到前面才明顯有兩個運算元啊(順序也沒問題..) 10/04 13:52
推 bigpigbigpig:溫馨提示:抓後面兩個運算元的地方需要遞迴 :) 10/04 14:12
QQ
→ s90366770607:輸入是字串 當然是用字串處理阿 10/04 14:33
→ blackwindy:F(char * string); 10/04 14:40
真是謝謝了 我去試試看 所以要使用字元陣列和指標?!
※ 編輯: a26573633 來自: 140.114.136.37 (10/04 15:15)
→ loveme00835:to EdisonX: 從前面跑到後面等函式呼叫結束並回傳讀取 10/04 16:22
→ loveme00835:頭比較簡單 10/04 16:22
推 EdisonX:感謝 loveme~,這題我也在 try 怎麼做說 @@ 10/04 16:30
哈哈 不會是同學吧@@
→ EdisonX:我也希望我是你同學,大概沒機會再旁聽課程了吧 @@ 10/04 19:53
謝謝版主~~ 感覺好難阿= =
[1;37m推 EdisonX:推版主的 :) 10/05 00:46
※ 編輯: a26573633 來自: 111.251.218.237 (10/05 15:50)