cquplz 发表于 2019-6-20 21:47:32

递归问题

一个基本的递归问题;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;
}
}

micolar 发表于 2019-6-20 22:08:32

#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;
}
}

红色的地方少了 而且数字大你递归吃不下 建议用数组保存每次递归的值

micolar 发表于 2019-6-20 22:09:26

为啥不变颜色 你再看看
#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;
}
}

cquplz 发表于 2019-6-20 22:18:57

micolar 发表于 2019-6-20 22:09
为啥不变颜色 你再看看
#include
#include


懂了,谢谢{:5_95:}
页: [1]
查看完整版本: 递归问题