斐波那契数列的通项公式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;
}
时间: 2024-10-11 22:36:55

斐波那契数列的通项公式x+洛谷P2626x的相关文章

P2626 斐波那契数列(升级版) 洛谷(2626)

https://www.luogu.org/problem/show?pid=2626 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • 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:

NYOJ 461-Fibonacci数列(四)(求斐波那契数列前4位)

题目地址:NYOJ 461 思路:斐波那契数列的通项公式为 然后下一步考虑如何产生前4位: 先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);假设给出一个数10234432, 那么log10(10234432)=log10(1.0234432*10^7)[用科学记数法表示这个数]=log10(1.0234432)+7; log10(1.0234432)就是log10(10234432)的小数部分. log10(1.0234432)=0.0

斐波那契数列——母牛的故事

斐波那契数列 先普及一下基础知识 1.定义 斐波那契数列,又称黄金数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*). 2.通项公式 斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式:显然这是一个线性递推数列.通项公式(如上,

斐波那契数列通项公式

1.对于斐波那契数列来说,存在通项公式,f[n]= 2.Hdu练习题1568: 大意求斐波那契数列中的某一项,n很大,只能在O(1)时间求出,并且只要前四位 当n很大时最后一项几乎为零

斐波那契数列算法分析

背景: 假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去.每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子? 在一月底,最初的一对兔子交配,但是还只有1对兔子:在二月底,雌兔产下一对兔子,共有2对兔子:在三月底,最老的雌兔产下第二对兔子,共有3对兔子:在四月底,最老的雌兔产下第三对兔子,两个月前生的雌兔产下一对兔子,共有5对兔子:……如此这般计算下去,兔子对数分

斐波那契数列(升级版)

题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • 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 代码 #i

斐波那契数列——摘自搜狗百科

1数列公式 递推公式 斐波那契数列:0.1.1.2.3.5.8.13.21.34.55.89.144... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式: F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3) 通项公式 通项公式的推导方法一:利用特征方程 线性递推数列的特征方程为: X^2=X+1 解得 X1=(1+√5)/2, X2=(1-√5)/2. 斐波拉契数列则F(n)=C1*X1^n + C2*X2^n ∵F(1)=F(2

leetcode笔记:Climbing Stairs(斐波那契数列问题)

一.题目描述 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 题目的大意是,已知有n阶楼梯,每次只能爬1阶或2阶楼梯,问爬到第n阶楼梯共有几种爬法-_-||.题目可以看成是,设f(n)表示爬到第n 阶楼梯的方法数,为

斐波那契数列 x

(一)通项公式 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 5 using namespace std; 6 7 int main() 8 { 9 int n; 10 scanf("%d",&n); 11 n--; 12 double q=sqrt(5.0); 13 int ans; 14 ans=((pow((1+q)/2.0,n)/q-(pow((1-q)/2.0