首页 > 试题广场 >

牛牛学数列5

[编程题]牛牛学数列5
  • 热度指数:22844 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛开始学习数列啦。现定义斐波那契数列,其前两项为 F_1=1, F_2=1,对于 n\geqq3,有:

\displaystyle F_n = F_{n-1} + F_{n-2}

\hspace{15pt}请计算并输出第 nF_n 的值。

输入描述:
\hspace{15pt}在一行中输入一个整数 n,满足 1 \leqq n \leqq 46


输出描述:
\hspace{15pt}输出一个整数,表示斐波那契数列的第 nF_n
示例1

输入

2

输出

1
示例2

输入

6

输出

8

说明

数列前几项为 1,1,2,3,5,8,因此 F_6=8
#记录输入
input_value = int(input())
if input_value == 1 or input_value == 2 or input_value == 3:
    if input_value == 1:
        print(input_value)
    elif input_value == 2:
        print(1)
    elif input_value == 3:
        print(3)
else:
    #大于2的时候好像有两种方法
#第一种方法是用数列记录每一项的值
#另一个方法是两个循环,记录第i-1项、i-2项
#这次先用第一个方法
    default_list = [1, 1, 2]
    i = 0
    #我下面一行错误的写为了:条件表达式 len(default_list) < input_value,这不是一个可迭代对象,而是一个布尔值(True 或 False)。
    #for len(default_list) < input_value:
    #for的唯一正确用法是for 变量 in 可迭代对象:
    while len(default_list) < input_value:
        c = default_list[-1] + default_list[-2]
        default_list.append(c)
        #下一行是我看有多少次循环的
        #print("程序运行中")
    print(default_list[-1])
发表于 2026-01-03 20:32:33 回复(1)
n = int(input())
if n<3:
    print('1')
else:
    a=1
    b=1
    for i in range(3,n+1):
        c=a+b
        a=b
        b=c
    print(c)
发表于 2025-12-17 23:45:04 回复(0)
F = [1,1]
n = int(input())
for i in range(2,n):
    F.append(F[i-1]+F[i-2])
   
print(F[-1])
发表于 2025-12-08 16:12:11 回复(0)
def shu(n):
    if n==1&nbs***bsp;n==2:
        return 1
    else:
        return shu(n-1)+shu(n-2)
n = int(input())
if 1<=n<=46:
    s = shu(n)
print(s)

发表于 2025-11-10 21:45:47 回复(0)
n=int(input())
p=1<=n<=46
a,b=1,1
if p:
    for i in range(n-2):a,b=b,a+b
    print(1 if n<3 else b)
else:print('请满足1≦n≦46的正整数要求')

发表于 2025-10-30 10:33:57 回复(0)
import sys

def fabi(n):
    if n <= 2:
        return 1
    a , b = 1,1
    for _ in range(n-2):
        a ,b = b,a+b
    return b

for line in sys.stdin:
    a = int(line.strip())
    print(fabi(a))

发表于 2025-10-28 20:32:00 回复(0)
n = int(input())
if n == 1 or n == 2:
    print(1)
else:
    a = 1
    b = 1
    for i in range(3, n+ 1):  
        c = a + b
        a = b
        b = c
    print(c)  
发表于 2025-09-23 15:48:34 回复(0)
n = int(input())
F = [1, 1]
while n > len(F):
    F.append(F[len(F)-1]+F[len(F)-2])
print(F[len(F)-1])
发表于 2025-08-13 17:11:01 回复(0)
def fib(n) -> int:
    pre : int = 0
    cur : int = 1
    for i in range(n - 1):
        pre, cur = cur, pre + cur
    return cur

n : int = int(input())
print(fib(n))


发表于 2025-07-24 11:39:48 回复(0)
n = int(input())

if (n == 1) or (n ==2):
    print(1)
else:
    a = 1
    b = 1
    Fn = 0

    for i in range(3, n+1):
        Fn = a + b
        a = b
        b = Fn

    print(int(Fn))
发表于 2025-07-13 22:23:12 回复(0)
def F(n):
    if n == 1&nbs***bsp;n ==2:
        return 1
    return F(n-1)+F(n-2)

n = int(input())
print(F(n))

发表于 2025-07-07 16:15:13 回复(1)
n = int(input())
F =[0,1]
for i in range(2,n+1):
    F.append(F[i-1]+F[i-2])
if n >= 0:
    print(F[n])
else:
    print("请输入一个正整数")

发表于 2025-06-30 15:40:30 回复(0)