博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCF NOI1064 计算斐波那契第n项
阅读量:5876 次
发布时间:2019-06-19

本文共 761 字,大约阅读时间需要 2 分钟。

问题链接


时间限制: 1000 ms  空间限制: 262144 KB

题目描述 

  输入n,编写程序输出斐波那契数列的第n项。其中斐波那契数列f(n)的定义如下:

  f(1)=0,f(2)=1        
  f(n)=f(n-1)+f(n-2)(n>=2)

输入

  一行一个正整数n。

输出

   输出一个数f(n)。

样例输入

5

样例输出

3

数据范围限制

  1<=n<=30


问题分析

  这是一个简单的经典的著名的问题。斐波那契数列的是递归定义的,但是可以用递推来实现。

  输入的n被限制在30以内,所以用long类型就可以了。

程序说明

  函数fib()封装了计算斐波那契数列第n项的功能,并且用递推来实现。

要点详解
  • 用函数封装功能是一个好的做法
  • 能用递推就不用递归,递归的代码逻辑往往比递推要简洁,但是通常时间上要慢并且需要更多的存储。


参考链接:(略)。

100分通过的程序:

#include 
long fib(int n){ long f1=0, f2=1, temp; int i; if(n == 1) return 0; if(n == 2) return 1; for(i=3; i<=n; i++) { temp = f1 + f2; f1 = f2; f2 = temp; } return f2;}int main(void){ int n; scanf("%d", &n); printf("%ld\n", fib(n)); return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563891.html

你可能感兴趣的文章
【协议】5、gossip 协议
查看>>
基于配置文件的redis的主从复制
查看>>
hasura graphql 角色访问控制
查看>>
springmvc中controller内方法跳转forward?redirect?
查看>>
C#委托,事件理解入门 (译稿)转载
查看>>
容器的end()方法
查看>>
[转] Agile Software Development 敏捷软件开发
查看>>
HDU 1007 Quoit Design (最小点对,模板题)
查看>>
Windows Phone 7 自定义事件
查看>>
Objective-c 网址中带中文解决方法
查看>>
向函数传递数组的问题
查看>>
上班族的坐姿
查看>>
ubuntu 12.04 下面安装vmware workstation 8.0.4
查看>>
[原创]FineUI秘密花园(二十三) — 树控件概述
查看>>
【Java学习笔记】如何写一个简单的Web Service
查看>>
如何解决This system is not registered with RHN.
查看>>
Cocos2d-x学习笔记(两)Cocos2d-x总体框架
查看>>
拆解探索MagSafe电源接口结构和指示灯变颜色原理
查看>>
Android中EditText,Button等控件的设置
查看>>
lintcode:Remove Nth Node From End of Lis 删除链表中倒数第n个节点
查看>>