zoj Fibonacci Numbers ( java , 简单 ,大数)

题目

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

import java.io.*;
import java.util.*;
import java.math.*;

public class Main {

/**
* @xqq
*/
public BigInteger an(int n) {
BigInteger c;
BigInteger a = BigInteger.valueOf(1);
BigInteger b = BigInteger.valueOf(1);

for(int i = 1; i < n; i++) {
c = a.add(b);
a = b;
b = c;
}
return a;
}
public static void main(String[] args) throws Exception {
// 定义并打开输入文件
Scanner cin = new Scanner(System.in);

Main e = new Main();
int n;

while(cin.hasNext()) {
n = cin.nextInt();
System.out.println(e.an(n));
}

cin.close(); //关闭输入文件
}
}

zoj Fibonacci Numbers ( java , 简单 ,大数),码迷,mamicode.com

时间: 2024-12-23 15:37:12

zoj Fibonacci Numbers ( java , 简单 ,大数)的相关文章

HDU 1250 Hat&#39;s Fibonacci(Java大数相加)+讲解

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1250 Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1. F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n -

HDU 1715 大菲波数(JAVA, 简单题,大数)

题目 //BigInteger 和 BigDecimal 是在java.math包中已有的类,前者表示整数,后者表示浮点数 import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(BigInteger a, BigInteger b, int n) { if(n == 1) { return a; } for(int i = 2

POJ 3982 序列(JAVA,简单,大数)

题目 //在主类中 main 方法必须是 public static void 的,在 main 中调用非static类时会有警告信息, //可以先建立对象,然后通过对象调用方法: import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger a99(BigInteger a, BigInteger b, BigInteger c) { f

zoj 1828 Fibonacci Numbers

ZOJ Problem Set - 1828 Fibonacci Numbers Time Limit: 2 Seconds      Memory Limit: 65536 KB A Fibonacci sequence is calculated by adding the previous two members of the sequence, with the first two members being both 1. f(1) = 1, f(2) = 1, f(n > 2) =

HDU 3117 Fibonacci Numbers(Fibonacci矩阵加速递推+公式)

题目意思很简单:求第n个Fibonacci数,如果超过八位输出前四位和后四位中间输出...,否则直接输出Fibonacci数是多少. 后四位很好求,直接矩阵加速递推对10000取余的结果就是. 前四位搜了一下:http://blog.csdn.net/xieqinghuang/article/details/7789908 Fibonacci的通项公式,对,fibonacci数是有通项公式的-- f(n)=1/sqrt(5)(((1+sqrt(5))/2)^n+((1-sqrt(5))/2)^n

JAVA求解大数

题目链接:CLICK HERE~ 有了Java求解大数变得如此简单,以后再也不用担心大数模板了.哦啦啦啦. import java.math.BigInteger; import java.math.BigDecimal; import java.util.Scanner; class Main{ public static void main(String args[]){ Scanner cin = new Scanner(System.in); while(cin.hasNext()){

acm hdu p1021 Fibonacci Again java解答 水水 找规律

Fibonacci Again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44697    Accepted Submission(s): 21341 Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n)

ZOJ ACM 1314(JAVA)

昨天做了几个题目,过于简单,就不在博客里面写了. 1314这道题也比较简单,写出来是因为我觉得在这里有一个小技巧,对于时间复杂度和空间复杂度都比较节省. 这个题目类似哈希表的求解,但是更简单.刚拿到题目时,我想当然的希望将查询结果放到一个数组里面,然后遍历查询是否有一样的mod值.但是感觉这样肯定是最普遍的方法而且效率也不是太高. 后来想到了其他的一些查询算法,比如二分,但是都感觉不太合适.直到我意识到这个过程和计算哈希表的过程类似,所以直接用mod值作为数组的下标索引,可以直接定位到当前值是否

codeforces 446C DZY Loves Fibonacci Numbers 线段树

假如F[1] = a, F[2] = B, F[n] = F[n - 1] + F[n - 2]. 写成矩阵表示形式可以很快发现F[n] = f[n - 1] * b + f[n - 2] * a. f[n] 是斐波那契数列 也就是我们如果知道一段区间的前两个数增加了多少,可以很快计算出这段区间的第k个数增加了多少 通过简单的公式叠加也能求和 F[n]  = f[n - 1] * b + f[n - 2] * a F[n - 1] = f[n - 2] * b + f[n - 3] * a ..