这个结果是怎么得出来的?

img

img

这是一个递归,过程如下,如有帮助,请帮忙采纳一下,谢谢:

初始值c=0,调用rp = H(1,3,3),过程如下:
H(1,3,3) c =1,n=1,n不等于0,b=3,执行rp1 = H(1,3,2); 等待执行 return H(0,3,rp1)
H(1,3,2) c =2,n=1,n不等于0,b=3,执行rp2 = H(1,3,1); 等待执行 return H(0,3,rp2)
H(1,3,1) c =3,n=1,n不等于0,b=1,执行rp3 = H(1,3,0); 等待执行 return H(0,3,rp3)
H(1,3,0) c =4,n=1,n不等于0,b=0,返回a,也就是返回3,rp3 = 3,执行return H(0,3,rp3),即执行H(0,3,3);
H(0,3,3) c =5,n=0,返回b+1,也就是4,rp2 = 4;执行return H(0,3,rp2),即执行H(0,3,4);
H(0,3,4) c =6,n=0,返回b+1,也就是5,rp1 =5;执行 return H(0,3,rp1)执行H(0,3,5)
H(0,3,5) c =7,n=0,返回b+1,也就是6
所以最后的返回值就是6,全局变量c的值是7