一个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/07/29 22:30:04
![一个c预言的题目这个程序的输出结果麻烦说一下过程谢谢了#include fun (int x){ int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p;}main( ){printf (\](/uploads/image/z/14901250-58-0.jpg?t=%E4%B8%80%E4%B8%AAc%E9%A2%84%E8%A8%80%E7%9A%84%E9%A2%98%E7%9B%AE%E8%BF%99%E4%B8%AA%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E9%BA%BB%E7%83%A6%E8%AF%B4%E4%B8%80%E4%B8%8B%E8%BF%87%E7%A8%8B%E8%B0%A2%E8%B0%A2%E4%BA%86%23include+fun+%28int+x%29%7B+int+p%3B+if%28x%3D%3D0%7C%7Cx%3D%3D1%29+return%283%29%3B+p%3Dx-fun%28x-2%29%3B+return+p%3B%7Dmain%28+%29%7Bprintf+%28%5C%22%25d%5C%5Cn%5C%22%2Cfun%289%29%29%3B%7D)
一个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). 查看原帖>>