1387:フィボナッチ数列@jobdu

1434 ワード

タイトル1387:フィボナッチ数列
時間制限:1秒
メモリ制限:32メガ
特殊問題:いいえ
コミット:2816
解決:827
タイトルの説明:
フィボナッチ数列はよく知られていますが、整数nを入力するように要求されています.フィボナッチ数列のn番目の項目を出力してください.フィボナッチ数列の定義は次のとおりです.
入力:
入力には、各テストケースについて、複数のテストケースが含まれる場合があります.
入力は整数n(1<=n<=70)を含む.
出力:
各テストケースに対応し、
n番目のフィボナッチ数列の値を出力します.
サンプル入力:
3

サンプル出力:
2

9 du OJはLeetCodeよりもはるかに劣っていることが分かった.一つはLeetCodeがJavaを完璧に処理する時間の問題であり、O(nlogn)のアルゴリズム保証が通過することであり、O(n 2)のアルゴリズム保証は通じない.もう1つはintの代わりにlongを使用しなければ通過できない場合であり,C++がlong longを使用する場合と同様である.そしてLeetCodeはエラー値に表示されています!これはとても役に立つ!結局、位置付けが違うので、9 du OJはACMの標準に近いので、LeetCodeは純粋に仕事を探すために使われています!
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class S9 {

	public static void main(String[] args) throws FileNotFoundException {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream("S9.in"));
		System.setIn(in);
		Scanner cin = new Scanner(System.in);
		
		while (cin.hasNextInt()) {
			long n = cin.nextInt();
			System.out.println(fib(n));
		}
	}
	
	public static long fib(long n){
		if(n == 0){
			return 0;
		}else if(n == 1){
			return 1;
		}else{
			long a = 0;
			long b = 1;
			long sum = 0;
			for(long i=2; i<=n; i++){
				sum = a + b;
				a = b;
				b = sum;
			}
			return sum;
		}
	}
	
	
}