【入门训练】 Fibonacci数列

(此博客仅为学习记录,不喜勿喷)

问题描述

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

源码如下:

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		
		int f1 = 1;
		int f2 = 1;
		int t = 0;
		for (int i=3;i<=n;i++) {
			t = f2;
			f2 = (f1 + f2)%10007 ;
			f1 = t;
		}
	
		System.out.println(f2);
	}
}

该题需要注意的是数据太大的问题,当数据太大,long型的变量也存不下,所以最好在循环中每次都除以10007取余,这样就解决了该问题。

猜你喜欢

转载自blog.csdn.net/qq_38054219/article/details/86652856