【每天一题ACM】 斐波那契数列(Fibonacci sequence)的实现
最近因为一些原因需要接触一些ACM的东西,想想写个blog当作笔记吧!同时也给有需要的人一些参考
话不多说,关于斐波那契数列(Fibonacci sequence)不了解的同学可以看看百度百科之类的,http://baike.baidu.com/link?url=KjZumXHZb0wCxYHW4qcfvJF2HIKFIxPuznpBUFweLXhboe6T48gT454LgnxralFKXYJ0-sMoeonnDOC_axuPfK
有条件的也可以看看wiki,https://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97
这里就不详细的介绍了。由于博主正在台湾学习,所以题目是繁体的。。见谅
题目如下:
費氏數列
在數學上,費波那契數列是以遞迴的方法來定義:
F(0)=0
F(1)=1
F(n) = F(n-1)+ F(n-2) (n≧2)
用文字來說,就是費波那契數列由0和1開始,之後的費波那契系數就由之前的兩數相加。首幾個費波那契系數是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……
請實作一程式,當輸入n時,請輸出F(n)
INPUT
第一行是測資個數k
接下來一行一個數字n , 共k行
OUTPUT
請一行一個的輸出每個n的F(n)
SAMPLE INPUT
3
1
10
8
SAMPLE OUTPUT
1
55
21
------------------分割线------------------
解题:
首先关于F(n) = F(n-1)+ F(n-2),相信各位应该都有想到使用递归来实现,这题的难度本身很简单。主要是考察递归的基本功所以就不多做解释了。直接上代码:
import java.util.ArrayList;
import java.util.Scanner; /**
* @Description: 在数学上,斐波那契数列是以递回的方法来定义: F(0)=0 F(1)=1 F(n) = F(n-1)+ F(n-2)
* (n≧2)
* @author LCC
* @date 2016年3月9日 下午8:57:58
*
*/
public class Fibonacci {
public static int num = 1; /**
* @Description: 求解斐波那契数列
* @param num 输入的参数
* @return 递归计算到num==1为止
*/
public static int fibonacci(int num) {
if (num == 1) {
return 1;
} else if (num == 0) {
return 0;
}
return fibonacci(num - 1) + fibonacci(num - 2);
} public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<Integer> rsList = new ArrayList<>();
int k = scan.nextInt();//測資個數k
for (int i = 0; i < k; i++) {
int n = scan.nextInt();
rsList.add(fibonacci(n));
}
for (int value : rsList) {
System.out.println(value);
}
} }
【每天一题ACM】 斐波那契数列(Fibonacci sequence)的实现的更多相关文章
- python实现斐波那契数列(Fibonacci sequence)
使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐 ...
- 斐波那契数列(Fibonacci) iOS
斐波那契数列Fibonacci 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2 ...
- 使用一位数组解决 1 1 2 3 5 8 13 数列问题 斐波纳契数列 Fibonacci
斐波纳契数列 Fibonacci 输出这个数列的前20个数是什么? 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 使用数组实现输出数列的前30 ...
- hdu 2044:一只小蜜蜂...(水题,斐波那契数列)
一只小蜜蜂... Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepte ...
- 《剑指offer》第十题(斐波那契数列)
// 面试题:斐波那契数列 // 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项. #include <iostream> using namespace std; ...
- 使用并行的方法计算斐波那契数列 (Fibonacci)
更新:我的同事Terry告诉我有一种矩阵运算的方式计算斐波那契数列,更适于并行.他还提供了利用TBB的parallel_reduce模板计算斐波那契数列的代码(在TBB示例代码的基础上修改得来,比原始 ...
- Go斐波拉契数列(Fibonacci)(多种写法)
1 前言 斐波拉契数列有递归写法和尾递归和迭代写法. 2 代码 //recursion func fib(n int) int{ if n < 2{ return n }else{ return ...
- poj3070_斐波那契数列(Fibonacci)
用矩阵求斐波那契数列,快速幂log(n),只用求最后4位(加和乘的运算中前面的位数无用) #include <stdio.h> #include <stdlib.h> int ...
- 练习六:斐波那契数列(fibonacci)
题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列 ...
- Java实现斐波那契数列Fibonacci
import java.util.Scanner; public class Fibonacci { public static void main(String[] args) { // TODO ...
随机推荐
- u-boot移植总结(四)u-boot-2010.09框架分析
(一)本次移植是基于FL2440,板子的基本硬件: CPU 型号为S3C2440,基于ARM920T,指令集ARMV4,时钟主频400MHz SDRAM H57V2562GTR-75C 2片*32MB ...
- 后缀数组---New Distinct Substrings
Description Given a string, we need to find the total number of its distinct substrings. Input T- nu ...
- ztree addNode editName removeNode
1.ztree api中完全拥有以上操作的相关解释,及简单Demo. 2.主要是要学会将单独的效果组合起来使用. 2.1 如: 添加完新的Node节点之后,怎么立即进入新节点的编辑状态来修改名称(或 ...
- 【Effective Java】4、覆盖equals时请遵守通用约定
package cn.xf.cp.ch02.item8.transitivity; public class Point { private final int x; private final in ...
- 转载Quandl R Package
Quandl R Package 通过Quandl API可以快速准确地获取宏观经济数据.(https://www.quandl.com/docs/api) 分享两个国外的优秀网站 R和Python在 ...
- Ahjesus获取自定义属性Attribute或属性的名称
1:设置自己的自定义属性 public class NameAttribute:Attribute { private string _description; public NameAttribut ...
- 初识HTTP协议
本篇文章从概念上初识HTTP协议,参考链接:http://www.runoob.com/http/http-tutorial.html 目录: 一.HTTP协议 HTTP 工作原理 HTT ...
- 管理系统的前端解决方案:Pagurian V1.3发布
Pagurian 一个管理系统的前端解决方案, 致力于让前端设计,开发,测试,发布更简单. 功能简介 Pagurian 适用于Web管理级的项目 基于Sea.js遵循CMD规范,友好的模块定义,使业务 ...
- java多线程系列5-死锁与线程间通信
这篇文章介绍java死锁机制和线程间通信 死锁 死锁:两个或两个以上的线程在争夺资源的过程中,发生的一种相互等待的现象. 同步代码块的嵌套案例 public class MyLock { // 创建两 ...
- 【读书笔记】iOS-特性
一,@符号标志着“你将使用Objective-C的特殊用法”.@property是一种新的编译器功能,表示声明了一个新对象属性. 二,@property预编译指令的作用是自动声明属性的setter和g ...