注册 登录
编程论坛 Python论坛

大神求救!

风卷浪起 发布于 2022-02-07 11:10, 2052 次点击
小蒜蒜最近学习了斐波那契数列。

斐波那契数列是指这样的数列:数列的第一个和第二个数都为 1,接下来每个数都等于前面 2 个数之和。

给出一个正整数 k,要求斐波那契数列中第 k 个数是多少。

输入格式
输入一行,包含一个正整数 k。(1≤k≤46)

输出格式
输出一行,包含一个正整数,表示斐波那契数列中的第 k 个数。

输出时每行末尾的多余空格,不影响答案正确性。

样例输入
19
样例输出
4181
大佬们,帮帮忙!寒假作业,需及时提交!好难啊!30高分悬赏!(可以用C++或Python)
8 回复
#2
风卷浪起2022-02-07 11:22
我自己写了一个,大家看看吧!C++的:
include <iostream>
using namespace std;
int h[46];
int main()
{
    int k, answer, a = 0;
    cin >> k;
    for (int i = 0; i <= 46; i += 1)
    {
        if (1 == i)
        {
            h[i] = 1;
        }
        else
        {
            h[i] = h[i-1] + h[i-2];
        }
    }
    answer = h[k];
    cout << answer;
    return 0;
}
#3
apull2022-02-07 14:15
直接计算
程序代码:

#include <iostream>
using namespace std;
int main()
{
    int a=0,b=0,c=1,n;
    cin >> n;
    for(int i=1;i<=n-1;i++)
    {
        a=b;
        b=c;
        c=a+b;
    }
    cout << c << endl;
    return 0;
}



递归方法
程序代码:


#include <iostream>
using namespace std;

long feibo(int n)
{
    if(n==1 || n==2) return 1;
    return feibo(n-1)+feibo(n-2);
}

int main()
{
    int n;
    cin >> n;
    cout << feibo(n) << endl;
    return 0;
}


[此贴子已经被作者于2022-2-7 14:24编辑过]

#4
shmily_cbb2022-02-08 08:19
#使用列表解决
list_t = [0, 1]
number_t = int(input("请输入一数字:"))
if number_t >= 1:
    list_t.append(list_t[1] + list_t[0])
    ii_t = 3
    while ii_t <= number_t:
        len_t = len(list_t)
        list_t.append(list_t[len_t - 2] + list_t[len_t - 1])
        ii_t += 1
print(list_t[len(list_t)-1])
#5
时光流逝2022-02-09 20:25
可以直接用公式:斐波那契数列第n项=(1/√5){[(1+√5)/2]^n-[(1-√5)/2]^n}
#6
风卷浪起2022-02-10 10:40
谢谢!
#7
sssooosss2022-02-11 19:19
共同学习
#8
czw20112022-03-26 16:44
纠正一下 @风卷浪起
#include <iostream>
using namespace std;
int h[46];
int main()
{
    int k, answer, a = 0;
    cin >> k;
    for (int i = 0; i <= 46; i += 1)
    {
        if (1 == i)
        {
            h[i] = 1;
        }
        else
        {
            h[i] = h[i-1] + h[i-2];
        }
    }
    answer = h[k];
    cout << answer;
    return 0;
}
#9
风卷浪起2024-05-04 14:37
1