斐波那契數列的通項公式x+洛谷P2626x


#include<cstdio>
#include<iostream>
#include<cmath>

using namespace std;

int main()
{
    int n;
    scanf("%d",&n);
    n--;
    double q=sqrt(5.0);
    int ans;
    ans=((pow((1+q)/2.0,n)/q-(pow((1-q)/2.0,n)/n)));
    cout<<ans<<endl;
    return 0;
} 

洛谷P2626

題目背景

大家都知道,斐波那契數列是滿足如下性質的一個數列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 為整數)。

題目描述

請你求出第n個斐波那契數列的數mod(或%)2^31之后的值。並把它分解質因數。

輸入輸出格式

輸入格式:

 

n

 

輸出格式:

 

把第n個斐波那契數列的數分解質因數。

 

輸入輸出樣例

輸入樣例#1:
5
輸出樣例#1:
5=5
輸入樣例#2:
6
輸出樣例#2:
8=2*2*2

說明

n<=48


上代碼:

#include <iostream> #include <cstdio> #include <cmath> #define Max 300 const long long Mod = pow (2, 31); void read (long long &now) { now = 0; char word = getchar (); while (word < '0' || word > '9') word = getchar (); while (word >= '0' && word <= '9') { now = now * 10 + word - '0'; word = getchar (); } } long long fibonacii[Max]; int main (int argc, char *argv[]) { register long long N; fibonacii[1] = 1; fibonacii[2] = 1; read (N); for (long long i = 3; i <= N; i++) fibonacii[i] = (fibonacii[i - 1] + fibonacii[i - 2]) % Mod; long long Count = 0; long long number = 2; register long long now = fibonacii[N]; printf ("%lld=", now); while (now != 1) { if (now % number) number++; else { Count++; if (Count == 1) printf ("%lld", number); else printf ("*%lld", number); now /= number; } } return 0; }

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: