Re: [問題] 可以麻煩教教我這兩題解法嗎?!

看板Prob_Solve作者 (止水)時間15年前 (2009/06/17 13:41), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/2 (看更多)
我想得頭好痛喔 我能提供題目跟答案 麻煩各位 m(_ _)m Q1: long test ( int n) { if ( n = =1 || n = = 0) return 1; else return ( test ( n-1) + test ( n-2)); } 請問執行test ( 6 ) 結果? test(6)=test(5)+test(4)=[test(4)+test(3)]+[test(3)+test(2)] =[[test(3)+test(2)]+[test(2)+1]]+[[test(2)+1]+1+1] =[[test(2)+1+1+1]+[1+1+1]]+5 =5+3+5=13 Ans:13 Q2: int m1,m2=11,m3=1; for ( m1=0 ; m1<=m2 ; m1++ ) { m3=m1+m3 ; m1=m1+2; } 執行後m3=? Ans:19 m1=0 m3=0+1=1; m1=m1+2=2; m1++ =>m1=3; 所以 m3=0+1 => 3+1 => 6+4 => 9+10 = 19 ※ 編輯: sonicc 來自: 59.124.246.167 (06/17 13:51)

06/17 14:22, , 1F
非常謝謝你 我懂了 ^^
06/17 14:22, 1F

06/17 17:06, , 2F
不好意思 請問 m3=0+1 => 3+1 => 6+4 => 9+10 = 19
06/17 17:06, 2F

06/17 17:08, , 3F
6+4那裡不懂耶 不是該5+4嗎?!
06/17 17:08, 3F

06/17 18:04, , 4F
因為你的m3已經變成4了 所以在第二次迴圈就是6+4
06/17 18:04, 4F

06/17 18:05, , 5F
看錯地方 = = m1+2之後因為迴圈已經結束一次m1要再加1
06/17 18:05, 5F
文章代碼(AID): #1AE88NOv (Prob_Solve)
文章代碼(AID): #1AE88NOv (Prob_Solve)