一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\"%d\\n\",fun(9));}

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 11:27:03
一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\
xݓjA_eH)@դVB'K "6VsqEMl.ڤJJQK,e̾EĴ R(vwvl4su>{ 4ɆW?⧗bt_y({;?z}+(FyL:^noI˜^X$Kih cd cr$Osr:eha:Kz&Z&g*koFJ2%'.F|̞tv-*ۻ`+d,3wa ;:o !tW~a_dHPv}:IpdݜRB >) e_AӼ|I4iV*G0BYX)-Q"ڴ"G6KE[~eu}8=L@*h-aR╭{Z7ZXOQZYUeuڂjyf9s>a z45UT`][ԤQeP~{J96maIewJM{c!UԿ<~Awyc6{ov^K)AB؅ϊ}N5&猘{M

一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\"%d\\n\",fun(9));}
一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了
#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\"%d\\n\",fun(9));}

一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\"%d\\n\",fun(9));}
递归函数调用.用数学表达就是: 已知 fun(x) = x - fun(x-2)且fun(0)=3fun(1)=3求fun(9)的值.fun(9)=9- fun(7) //计算到这里要先等待fun(7)的计算成果才能持续往下计算 =9- (7- fun(5)) //而到了这一步则要等待fun(5)返回计算成果才能持续运算 =9- (7- (5- fun(3))) //同理等待fun(3)返回计算成果 =9- (7- (5- (3- fun(1)))) //碰到了fun(0)或fun(1)此时不消再递归了逐层向主调函数返回计算成果 =9- (7- (5- (3- 3)))) =7在fun(x)函数中当履行到p=x-fun(x-2)时当前fun(x)函数会挂起入栈等待fun(x-2)返回计算成果.而在fun(x-2)函数履行过程中又会被挂起入栈等待fun(x-4)函数返回成果...如斯来去直到碰见fun(0)或fun(1). 查看原帖>>