Java学习之斐波那契数列实现
描述
一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000。
输入
输入数据的第一行为测试用例的个数t,接下来为t行,每行为一个整数n(0≤n≤1000)。
输出
输出每个测试用例的斐波那契数F(n)。
样例输入
2
1
2
样例输出
1
1
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<BigInteger> ar=new ArrayList<BigInteger>();
BigInteger b1=new BigInteger("1");
ar.add(b1);
BigInteger b2=new BigInteger("1");
ar.add(b2);
Scanner sc=new Scanner(System.in);
for(int i=2;i<1010;i++)
{
BigInteger a=ar.get(i-1);
BigInteger b=ar.get(i-2);
BigInteger c=a.add(b);
ar.add(c);
}
int t=0;
int n=sc.nextInt();
while(true){
if(t==n)
break;
int m=sc.nextInt();
if(m==0)
System.out.println(0);
else
System.out.println(ar.get(m-1));
t++;
}
}
}
像这种数据非常大的,用C或C++解决真是非常麻烦,不过用Java就比较简单了,BigInteger可以存无限大的数,比较好处理,第一次交上去竟然RE了,不明白,测试了好几次,突然想到如果输入0时数组的下标就变成-1了,于是,输入0加入判断,就过了
Java学习之斐波那契数列实现的更多相关文章
- Go语言学习之斐波那契数列的测试例子和定义常量方法
### Go语言学习之斐波那契数列的测试例子和定义常量方法 1.go语言中测试文件必须以test.go结尾,比如:fib_test.go 2.测试文件内的方法必须是Test开头,比如:func Tes ...
- Java迭代实现斐波那契数列
剑指offer第九题Java实现 题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. public class Test9 { public static void ...
- Java练习 SDUT-1132_斐波那契数列
C/C++经典程序训练2---斐波那契数列 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写计算斐波那契(Fibon ...
- Python学习之斐波那契数列实现篇
描述 一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000. 输入 输入 ...
- (java版)斐波那契数列
用JAVA编写Fibonacei(1,1,2,3,5,8,13...)数列的第n项 分析:当n=1时,a(n)=1;当n=2时 ,a(n)=2. 所以当n=>3时,a(n)=a(n-1)+a(n ...
- 简单Java算法程序实现!斐波那契数列函数~
java编程基础--斐波那契数列 问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:可能出现的情况:(1) n=1 ,一种方法 ;(2)n=2 ...
- 斐波那契数列 的两种实现方式(Java)
import java.util.Scanner; /* 斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n ...
- java大数 斐波那契数列
java大数做斐波那契数列: 思路:1. 2.可以用数组存着 import java.math.BigInteger; import java.util.Scanner; public ...
- Python3 ——斐波那契数列(经典)
刚刚学习了 斐波那契数列,整理一下思路,写个博文给未来的学弟学妹参考一下,希望能够帮助到他们 永远爱你们的 ----新宝宝 经历过简单的学习之后,写出一个比较简单的代码,斐波那契数列:具体程序如下: ...
随机推荐
- Spring全家桶之springMVC(一)
Spring MVC简介和第一个spring MVC程序 Spring MVC是目前企业中使用较多的一个MVC框架,被很多业内人士认为是一个教科书级别的MVC表现层框架,Spring MVC是大名鼎鼎 ...
- python 机器学习(二)分类算法-k近邻算法
一.什么是K近邻算法? 定义: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源: KNN算法最早是由Cover和Hart提 ...
- windows下node配置npm全局路径(踩坑)
事情的起因是:Koa要求v7.6.0以上的nodejs. 但是window环境下升级node不容易,试过npm install -g n 和n stable等命令无效,而网上推荐的nvm并不支持win ...
- 流复制-pg_basebackup (没有自定义表空间)
一.组成部分 1.walsender进程是用来发送WAL日志记录的 2.walreceiver进程是用来接收WAL日志记录的 3.startup进程是用来apply日志的 二.主库配置 1.授权账号, ...
- Python 字符串内置函数(四)
# 4.类型判断# isalnum()函数检测字符串是否只由字母和数字组成.s = "this2009"; # 字符中没有空格print(s.isalnum()) # 结果:Tru ...
- zoj3997网络流+数学
题目大意就是每个人都有自己喜欢的座位编号,喜欢的编号是要x的倍数就好,(1<=x<=10)一共10种情况,每种情况的人的数目不一样. 给你一个n,代表有编号1-n这n个座位,问最多能满足多 ...
- DFS序--一般都要转化为顶点到每个点
There is a rooted tree with n nodes, number from 1-n. Root’s number is 1.Each node has a value ai. I ...
- CF834D
题目链接:http://codeforces.com/contest/834/problem/D 题目大意:将一个有n个数的数列分成k段,每段的价值为该段中不同数字的个数,求k段的最大总价值. 解题思 ...
- Java内存虚拟机理解
对于Java程序员,在虚拟机自动内存管理机制的帮助下,不需要再为每一个操作写配对的释放资源操作,不容易出现内存泄露和内存溢出问题.加深对Java虚拟机的理解,有助于在发现问题时精准定位问题,排 ...
- Java操作XML(1)
XML简介 XML(Extensible Markup Language)是一种非常有用的迷哦书结构化信息的技术.XML工具使处理和转化信息变得十分容易. 在程序中,可以使用属性文件(property ...