栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PTA:是否是斐波那契家族的一员?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PTA:是否是斐波那契家族的一员?

是否是斐波那契家族的一员?

在数学上,斐波纳契数列以如下被以递归的方法定义:

F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

这个数列有着一个非常重要的美学特性:当n趋向于无穷大时,前一项与后一项的比值越到后面越来越逼近黄金分割率即f(n)/f(n-1)→1.618…,即

大自然的形成与这种美学有着较大的关联:

了解完这个数列后,现在需要你进一步通过编程熟悉斐波那契数列:

给定一个正整数N(N>1),输出其位于斐波那契数列中的第几项。如果不存在于数列则输出-1。在此我们规定数列的第一项是F(1)=1,第二项F(2)=1,……。

注:此题建议大家使用函数来进行模块化编程,例如:

void generate()  //产生斐波那契数列
{
}

bool judge(int x)  //判断一个数x是否在数列中
{

}

int main()   //主函数
{

    return 0;
}

输入格式:
一行,正整数N,(1

输出格式:
N位于第几项,如果不存在于数列中,输出-1

输入样例:
样例输入1:

2

样例输入2:

8

输出样例:
样例输出1:

3

样例输出2:

6

代码示例(仅供参考):

#include
int f(int n)
{
	int fei;
	if(n==1)
	{
		fei=0;
	}
	if(n==2)
	{
		fei=1;
	}
	if(n>=3)
	{
		fei=f(n-1)+f(n-2);
	}
	return fei;
}


int main()
{
	long int t,n,x;
	scanf("%ld",&x);
	long int i;
	for(i=1;i<=33;i++)
	{
		
		if(x==f(i))
		{
	    	printf("%d",i-1);
	    	break;
    	}
		else if(i==33)
		{
			printf("-1");
			break;
		}
	}
	
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号