Nyoj148
来源:互联网 发布:windows 做磁盘条带化 编辑:程序博客网 时间:2024/05/01 15:09
fibonacci数列(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
In the Fibonacci integersequence, F0 = 0, F1 =1, and Fn = Fn − 1 + Fn −2 for n ≥ 2. For example, the first ten terms ofthe Fibonacci sequence are:
0, 1, 1, 2, 3, 5,8, 13, 21, 34, …
An alternative formula for the Fibonacci sequence is
.
Given an integer n, your goal is to compute the last4 digits of Fn.
Hint
As a reminder, matrix multiplication is associative, and theproduct of two 2 × 2 matrices is given by
.
Also, note that raising any 2 × 2 matrix to the 0th power givesthe identity matrix:
.
输入
The input test file will contain multiple test cases. Each testcase consists of a single line containing n (where 0 ≤ n ≤ 1,000,000,000). Theend-of-file is denoted by a single line containing the number −1.
输出
For each test case, print the last four digits of Fn. If thelast four digits of Fn are all zeros, print ‘0’; otherwise, omit any leadingzeros (i.e., print Fn mod 10000).
样例输入
0
9
1000000000
-1
样例输出
0
34
6875
import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);final int N=21000; int []f=new int [N];f[0]=0;f[1]=1; int i; for(i=2;i<N;i++){ f[i]=(f[i-1]+f[i-2])%10000; if(f[i]==0){ f[i+1]=(f[i]+f[i-1])%10000; if(f[i+1]==1)break; } } while(in.hasNext()){int n=in.nextInt();if(n==-1)break;n=n%i;System.out.println(f[n]); } }}
- Nyoj148
- nyoj148 fibonacci数列(二)(矩阵幂运算)
- poj解题报告——1416
- java多态性Overload和Override的区别
- wireshark基本用法及过虑规则
- addSubview和insertSubview 的区别解析
- MySQL在Ubuntu设置自启动的一个故障解决
- Nyoj148
- python 学习笔记----基本语法
- 使用Jackson2.4进行对象与JSON的转换
- Android SharedPreferences存储数据的使用方法
- Andriod开发技巧——Fragment的懒加载
- 15-02-03
- Wince应用程序写文件换行
- 51Nod 论学好数学是多么重要 (圆与三角形相交)
- 解决对象与JSON解析时属性不对应+空字符串+枚举的问题