|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一个基本的递归问题;f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) ;我自己写的代码如下,但是报错是说参数传入太少,求各位解答:
#include <stdio.h>
#include<math.h>
int calculate(int i,int j,int k);
int main()
{
int a,b,c;
scanf(("%d %d %d"),a,b,c);
calculate(a,b,c);
return 0;
}
int calculate(int i,int j,int k)
{ int sum;
if(k==1||k==2)
return 1;
else
{sum=(i*calculate(k-1)+j*calculate(k-2));
return sum;
}
}
- #include <stdio.h>
- #include<math.h>
- int calculate(int i,int j,int k);
- int main()
- {
- int a,b,c;
- scanf(("%d %d %d"),a,b,c);
- calculate(a,b,c);
- return 0;
- }
- int calculate(int i,int j,int k)
- { int sum;
- if(k==1||k==2)
- return 1;
- else
- {sum=(i*[color=Red]calculate(k-1)[/color]+j*[color=Red]calculate(k-2)[/color]);
- return sum;
- }
- }
复制代码
红色的地方少了 而且数字大你递归吃不下 建议用数组保存每次递归的值
|
|