1064. 計算斐波那契第n項 通項公式

自為風月馬前卒發表於2017-04-06

題目描述

輸入n,編寫程式輸出斐波那契數列的第n項。其中斐波那契數列f(n)的定義如下:
f(1)=0,f(2)=1        
f(n)=f(n-1)+f(n-2)(n>=2)

輸入

一行一個正整數n。

輸出

 輸出一個數f(n)。

樣例輸入

5

樣例輸出

3

資料範圍限制

1<=n<=30
n---------------------------------------------------------------
 
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 int main()
 6 {
 7     int n;
 8     cin>>n;
 9     n--;
10     double x=sqrt(5.0);
11     cout<<(int)(((pow((1+x)/2.0,n)-(pow((1-x)/2.0,n))))*x)/5.0;
12     return 0;
13 }

 

相關文章