列表

详情


OR118. 斐波那契数列

描述

菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数K,要求菲波那契数列中第k个数是多少。

输入描述

输入一行,包含一个正整数k。(0<k<47)

输出描述

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小

示例1

输入:

19

输出:

4181

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-07-07

#include<stdio.h>
int main()
{
    int k;
    scanf("%d",&k);
    int a1=1,a2=1;
    long int result;
    if(k<=2)
        printf("1");
    else
    {
        for(int i=3;i<=k;i++)
        {
            result=a1+a2;
            a1=a2;
            a2=result;
        }
        printf("%d",result);
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2021-09-09

#include <stdio.h>

int f(int num)
{
    if(num==1 || num==2)
        return 1;
    int x=1,y=1,i;
    for(i=3;i<=num;i++)
    {
        y=x+y;
        x=y-x;
    }
    return y;
}

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

上一题