C语言- 利用数组计算斐波那契数列(数组)

C语言- 利用数组计算斐波那契数列(数组),第1张

题目详情

本题要求编写程序,利用数组计算菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证计算结果在长整型范围内。


Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如::1,1,2,3,5,8,13,...。



文章目录


  • 一、输入样例


  • 二、输出样例


  • 三、代码展示


  • 四、思路体现


  • 五、难点记录



一、输入样例

输入正整数n(1<=n<=46)。


7


二、输出样例

输出前N个Fibonacci数,每个数占11位,每行输出5个。


如果最后一行输出的个数不到5个,也需要换行。


如果输入的N不在有效范围内,则输出"Invalid."。


          1          1          2          3          5
          8         13


三、代码展示

1)while循环:

#include
int main()
{
	long int a[46]={1,1};        //定义数组
	int n,i=2;        
	scanf("%d",&n);        //输入n
	if(n>=1&&n<=46)        //对n的大小进行规范
	{
		if(n==1)printf("%11d",a[0]);        //当n等于1时
		else if(n==2)printf("%11d%11d",a[0],a[1]);        //当n等于2时
		else        //当大于2时
		{
			printf("%11d%11d",a[0],a[1]);          //首先输出前两个数
			while(i

2)for循环:

#include
int main()
{
	int fib[46]={1,1};
	int i,n;
	scanf("%11d",&n);
	if(n>=1&&n<=46){
		if(n==1)printf("%11d\n",fib[0]);
		else if(n==2)printf("%11d%11d\n",fib[0],fib[1]);
		else{
			printf("%11d%11d ",fib[0],fib[1]);
			for(i=2;i

(注:这两段代码没有经过pta测试,可能会有误差) 



四、思路体现

斐波那契数列中从第三个数开始,每个数都是前两个数之和,因此我们首先将前两个数输入进数组,然后利用循环,从第三个数开始计算;需要注意的是,输出时每个数站11位,且每五个数要换行,且若是最后一行输出的数字不满足五个数也需要换行。




五、难点记录

没有搞清楚斐波那契数列的特性,便盲目开始写代码;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/607893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)