c语言问题 #include<stdio.h> long fun(int n) { long s; if(n==1‖n==2)s=2; else s=n-fun(n-1)

2025-06-22 22:52:50
推荐回答(2个)
回答1:

这是函数的递归调用
首先,fun(3)=3-fun(2),这你应该明白吧
然后,fun(2)呢,满足if(n==1‖n==2)的条件语句,所以执行s=2;这条语句,所以fun(2)的函数返回值是2,所以fun(3)=3-2=1,所以fun(3)的函数返回值是1,即printf("%1d\n",fun(3));的输出结果就是1。

回答2:

递归
fun(3) = 3 - fun(2) = 3- 2= 1