蓝桥杯合集 入门训练 Fibonacci数列(Java/C++)

蓝桥杯系统练习合集Java/C++版持续更新中 点击进入

参考:https://blog.csdn.net/weixin_42069140

问题描述

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

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

输入格式

输入包含一个整数n。

输出格式

输出一行,包含一个整数,表示Fn除以10007的余数。

样例输入

10

样例输出

55

样例输入

22

样例输出

7704

数据规模与约定

1 <= n <= 1,000,000。

时间限制:1.0s

Java版本代码

package Blue;

import java.util.Scanner;

public class Blue {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc  = new Scanner(System.in);
		
		int n  = sc.nextInt();
		
		if (n == 1 || n == 2) {
		System.out.println(1 % 10007);
	}else {
		int a = 1; //相当于Fn
		int b = 1; //相当于Fn-1
		int result = 0;
		
		for (int i = 3; i <= n; i++) {
			result = (a+b);
			a = b;
			b = result;
		}
		
		System.out.println(result%10007);
	}

}
}

C++版本代码

#include<iostream>
using namespace std;

int main(){
	int n;
	cin >> n;

	if (n == 1 || n == 2){
		cout << 1 % 10007;
	}
	else{
		int a = 1;
		int b = 1;
		int result = 0;

		for (int i = 3; i <= n; i++){
			result = (a + b);
			a = b;
			b = result;
		}
		cout << result % 10007;
	}
}
发布了28 篇原创文章 · 获赞 6 · 访问量 2872

猜你喜欢

转载自blog.csdn.net/weixin_45621658/article/details/102471619