|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int f(int n, int x)
{
if(n==0) return 1;
if(n==1) return x;
return 2*f(n-1,x)+3*f(n-2,x); 请问这步是怎么进行运算的呢,代入数进去不会算
}
int main()
{ printf("%d",f(3,2)); return 0; }
本帖最后由 风过无痕1989 于 2020-12-8 17:05 编辑
f(int n, int x) 由三个式子组成:
f(0) = 1;
f(1) = x;
2*f(n-1,x)+3*f(n-2,x);
主函数以 n = 3, x = 2 调用函数 f(int n, int x):
2 * f(n - 1, x) + 3 * f(n - 2, x)
= 2 * f(3 - 1, 2) + 3 * f(n - 2, 2))
= 2 * f(2, 2) + 3 * f(1, 2)
= 2 * [2 * f(2 - 1, x) + 3 * f(2 - 2, x)] + 3 * x
= 2 * [2 * f(1, x) + 3 * f(0, x)] + 3 * x
= 2 * [2 * x + 3 * 1] + 3 * x
= 2 * [2 * 2 + 3] + 3 * 2
= 2 * [7] + 6
= 14 + 6
= 20
|
|