关于斐波那契数列的代码问题!!!

具体问题如图所示,用函数写这个代码,拜托各位大神!!图片

c c++

6个回答

 #include "stdio.h"
int f(int n)
{
if (n == 1 || n == 2) return 1;
return f(n - 2) + f(n - 1);
}
int main()
{
int m, n;
int sum = 0;
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++)
sum += f(i);
printf("%d\n", sum);
}
weixin_36896125
weixin_36896125 而且你的题目好像理解错了,最后输出是10,不是11,就是2+3+5,不是1+2+3+5
3 年多之前 回复
weixin_36896125
weixin_36896125 提交上去时间超限
3 年多之前 回复

#include "stdio.h"
#include "string.h"
#define MAX 10000
int data[MAX];
int f(int n)
{
if(data[n] != 0)
return data[n];
return f(n-1) + f(n-2);
}
int main()
{
memset(data, 0, sizeof(data));
data[1] = data[2] = 1;
int m, n;
int sum = 0;
scanf("%d%d", &m, &n);
if(m > n)
{
int c = m;
m = n;
n = c;
}
int i;
for(i=1;i {
if(f(i)>=m)
sum += f(i);
}
printf("%d\n", sum);
return 0;
}

weixin_36896125
weixin_36896125 你确定你没写错吗
3 年多之前 回复

public static void main(String[] args) {
int n=1;
int m =13;
List list = new ArrayList<>();
list.add(1);
list.add(1);
for(int i=0;;i++){
list.add(list.get(i)+list.get(i+1));
if(list.get(i+2)>=m)
break;
}
int result = 0;
for(Integer a : list){
if(a>=n && a<=m){
result += a;
}
}
System.out.println(result);
}
乱写的,大致看看吧

int fib (int n)
{
    if(n == 0)
      return 0;
    if(n == 1)
      return 1;
    return fib2(n-1)+fib2(n-2);
}
 int fib2(int n)
{
    if(n == 0)
      return 0;
    if(n == 1)
      return 1;
    return fib2(n-1)+fib2(n-2);
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问