结果是20
#include <stdio.h>
int f(int n, int x)
if(n= =0)return 1;
if(n==1) return x;
return 2f(n-1,x)+3f(n-2,x);
}
int main()
{}
printf("%d",f(3,2);
return 0;
}
结果是20
#include <stdio.h>
int f(int n, int x)
if(n= =0)return 1;
if(n==1) return x;
return 2f(n-1,x)+3f(n-2,x);
}
int main()
{}
printf("%d",f(3,2);
return 0;
}
辣鸡啊,前面的问题满意没有啊?
f(3,2),n=3,x=2
f函数是递归的,递归结束条件是n=1或者0
递归分解一下:
f(3,2)=2*f(2,2) + 3*f(1,2) = 2*(2*f(1,2) + 3*f(0,2)) + 3*f(1,2)
f(3,2)=2*(2*2+3*1)+3*2 = 2*(4+3) + 6=20
说明: f(1,2)返回2,f(0,2)返回1