PDA

View Full Version : سوال: تابع برگشتی در پاسگال(کنکوری)



babakgm
شنبه 20 مهر 1387, 15:41 عصر
function rec(n):integer
begin
if n=1 then rec:=1
else
re:=rec(n-1)+rec(n-1)
end


مقدار برگشتی rec(5)



چه اتفاقی برای این برنامه میوفته که جواب آن 16 میشود؟
در صوتی که من جواب را 8 دراوردم :؟

در پاسخ کنکوری حل اینطور گفته شده

rec(5)=rec(4)+rec(4)=2*8=16


اما من نمی فهمم چرا در 2 ضرب شده؟

رضا عربلو
سه شنبه 23 مهر 1387, 22:05 عصر
به این قسمت توجه کن:


re:=rec(n-1)+rec(n-1)

whitehat
سه شنبه 23 مهر 1387, 22:14 عصر
rec(5)=rec(4)+rec(4)
rec(4)=rec(3)+rec(3)
rec(3)=rec(2)+rec(2)
rec(2)=rec(1)+rec(1)
rec(1)=1
-->rec(2)=1+1=2
-->rec(3)=2+2=4
-->rec(4)=4+4=8
-->rec(5)=8+8=16