L2-3【例4-9】 求满足条件的斐波那契数

周宁雯202321332003 软件23 2023-11-19 12:27:41

 

L2-3【例4-9】 求满足条件的斐波那契数

分数 20

 

全屏浏览题目

 

切换布局

作者 陈春晖

单位 浙江大学

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。

输入格式:

在一行输人一个正整数n(n>=10)。

输出格式:

在一行输出大于n的最小斐波那契数。

输入样例:

在这里给出一组输入。例如:

10

输出样例:

在这里给出相应的输出。例如:

13

代码长度限制

16 KB

时间限制

400 ms

内存限制

解题思路:

先定义两个变量a,b等于0,再用一个循环来进行斐波那契数列的项的递增,并进行判断直到大于n后跳出循环并输出。

可得源代码如下;

#include<stdio.h>
int main()
{
	int a=1,b=1,c;
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){  //循环次数一定小于n故可用i<=n做判断
		c=b;            //再定义一个变量来记录b值;
		b=a+b,
		a=c;
		if(b>n)
		{
			printf("%d",b);
			break;
		}
	}	
	return 0;
}

 

 优化:

方式:for循环中有一个判断条件,循环内部还有一个if的判断,两者可进行简化。如下:

#include<stdio.h>
int main()
{
	int a=1,b=1,c;
	int n;
	scanf("%d",&n);
	while(b<=n){
		c=b;
		b=a+b,
		a=c;
	}
	printf("%d",b);
		
	return 0;
}

这样循环一次就只需进行 一次判断。

 

...全文
115 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

211

社区成员

发帖
与我相关
我的任务
社区描述
程序设计基础课程教学群
c语言c++ 高校 福建省·厦门市
社区管理员
  • xmzq001
  • jiangxiaoju
  • 星落化尘
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

请加入学习社区的软件23级同学修改社区昵称为学号+姓名,以便登记作业提交情况。

试试用AI创作助手写篇文章吧