■与关递归算法的问题■

来源:百度知道 编辑:UC知道 时间:2024/05/13 02:11:55
设有一个递归算法如下
int x (int n) {
if (n<=3) return 1;
else return x(n-2)+x(n-4)+1;
}
试问计算 x(x(8))时需要计算()次x函数。
A 8 次 B 9 次 C 16 次 D 18次
请说明下思路谢谢

我知道是18次,思路吗,你就一步一步推程序就行第一次执行为x(8),x(8)中再执行x(8-2),依次向下就行了
18次我是用程序算出来的
#include <stdio.h>
int m=0;
int x (int n) {
m++;
if (n<=3) return 1;
else return x(n-2)+x(n-4)+1;
}
main()
{
x(x(8));
printf("%d",m);
}