閱讀24 返回首頁    go 小米 go 小米6


[劍指Offer]11.斐波那契數列

題目描述:

大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下:

輸入:

輸入可能包含多個測試樣例,對於每個測試案例,

輸入包括一個整數n(1<=n<=70)。

輸出:

對應每個測試案例,

輸出第n項斐波那契數列的值。

樣例輸入:
3
樣例輸出:
2

/*********************************
*   日期:2013-11-15
*   作者:SJF0115
*   題號: 題目1387:斐波那契數列
*   來源:https://ac.jobdu.com/problem.php?pid=1387
*   結果:AC
*   來源:劍指Offer
*   總結:
**********************************/
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
//斐波那契數列F(n)
long long  Fibonacci(int n){
    int i;
    long long fibonacciA = 0;
    long long fibonacciB = 1;
    long long fibonacciC;
    if(n == 0){
        return fibonacciA;
    }
    else if(n == 1){
        return fibonacciB;
    }
    for(i = 2;i <= n;i++){
        fibonacciC = fibonacciA + fibonacciB;
        fibonacciA = fibonacciB;
        fibonacciB = fibonacciC;
    }
    return fibonacciC;
}

int main()
{
	int i,n;
	while(scanf("%d",&n) != EOF){
        printf("%lld\n",Fibonacci(n));
	}
    return 0;
}


#include <stdio.h>
#include <math.h>

int main()
{
	int n,i,j;
	double Fibonacci[71];
	Fibonacci[0] = 0;
	Fibonacci[1] = 1;
	while(scanf("%d",&n) != EOF){
	    for(int i = 2;i <= n;i++){
	        Fibonacci[i] = Fibonacci[i-1] + Fibonacci[i-2];
	    }
	    printf("%.0lf\n",Fibonacci[n]);
	}
	return 0;
}


【代碼三】

/*---------------------------------------
*   日期:2015-07-20
*   作者:SJF0115
*   題目: 11.斐波那契數列
*   結果:AC
*   網址:https://www.nowcoder.com/books/coding-interviews/c6c7742f5ba7442aada113136ddea0c3?rp=1
*   來源:劍指Offer
*   博客:
-----------------------------------------*/
#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;

class Solution {
public:
    int Fibonacci(int n) {
        int a = 1;
        int b = 1;
        if(n <= 0){
            return 0;
        }//if
        if(n == 1 || n == 2){
            return 1;
        }//if
        int num;
        for(int i = 3;i <= n;++i){
            num = a + b;
            a = b;
            b = num;
        }//for
        return num;
    }
};

int main(){
    Solution s;
    int n;
    while(cin>>n){
        int result = s.Fibonacci(n);
        // 輸出
        cout<<result<<endl;
    }//while
    return 0;
}




最後更新:2017-04-03 14:54:04

  上一篇:go unix下快速混淆源代碼
  下一篇:go 計算機體係結構1_內存類型