用C++编写一道题,并看看我编写的程序错误在哪。
/*f数列定义如下:f(1)=f(2)=1f(n)=f(n-1)+f(n+1)数列中的每个f(n)称为f数,求4000之内最大的f数*/#include<iostream...
/* f数列定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n+1)
数列中的每个f(n)称为f数,求4000之内最大的f数 */
#include<iostream>
using namespace std;
int f(int n)
{
if(n<=0)return 0;
if(n==1)return 1;
if(n==2)return 1;
return f(n-1) + f(n-2);
}
void main()
{
int i;
int a[4000];
for(i=0;i<40;i++)
{
a[i]=f(i+1);
}
for(i=0;i<4000;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];
}
cout<<"MAX="<<a[3999]<<endl; //这里只得出最大数的数值,无法知道是第几个
}
//程序编译通过,但是运行后窗口一直没有反应 展开
f(1)=f(2)=1
f(n)=f(n-1)+f(n+1)
数列中的每个f(n)称为f数,求4000之内最大的f数 */
#include<iostream>
using namespace std;
int f(int n)
{
if(n<=0)return 0;
if(n==1)return 1;
if(n==2)return 1;
return f(n-1) + f(n-2);
}
void main()
{
int i;
int a[4000];
for(i=0;i<40;i++)
{
a[i]=f(i+1);
}
for(i=0;i<4000;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];
}
cout<<"MAX="<<a[3999]<<endl; //这里只得出最大数的数值,无法知道是第几个
}
//程序编译通过,但是运行后窗口一直没有反应 展开
展开全部
f(n)=f(n-1)+f(n+1)
return f(n-1) + f(n-2);
先看看你自己写的
return f(n-1) + f(n-2);
先看看你自己写的
追问
哎,在网上复制来复制去弄错了。
但是 f(n)=f(n-1)+f(n+1)这句是错误的;
而且如果改为return f(n-1)+f(n+1),求个简单的f(3)都没反应
是不是根本就不能这样定义f(n)??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询