注册 登录
编程论坛 VC++/MFC

求助??谢谢...

临门一脚 发布于 2010-10-20 23:22, 390 次点击
编译没问题 没结果。 题目是:f(1)=f(2)=1  f(n)=f(n-1)+f(n-2)
求4000内 最大的f(n) 为?


#include "stdafx.h"
#include<iostream>
using namespace std;
long f(int);
int n;

int main()
{   
        if(f(n)<4000&&f(n+1>4000))cout<<f(n)<<endl;
        

        return 0;
}
long f(int n)
{
        long b;
        if(n==1||n==2) b=1;
        else b=f(n-1)+f(n-2);
        return b;
}
请指教批评...
4 回复
#2
临门一脚2010-10-20 23:23
希望大家不吝指教...
#3
cnfarer2010-10-21 07:12
n没有初值!另外n也不需要是全局的!
#4
小草一棵2010-10-21 10:49
#include "stdafx.h"
#include<iostream>
using namespace std;
long f(int);
int main()
{   
        int n;
        for(n = 3; ;n++)
        {
          if(f(n)>4000)
              break;
         }
         cout<<f(n-1)<<endl;
        

        return 0;
}
long f(int n)
{
        long b;
        if(n==1||n==2) b=1;
        else b=f(n-1)+f(n-2);
        return b;
}
#5
临门一脚2010-10-21 16:02
回复 4楼 小草一棵
万分感谢,我也知道这里错,但我不会改,再一次感谢!
1