蓝桥杯速刷:Fibonacci数列

资源限制:
时间限制:1.0s 内存限制:256.0MB

问题描述:
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式:
输入包含一个整数n。
输出格式:
输出一行,包含一个整数,表示Fn除以10007的余数。

说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入:
10
样例输出:
55
样例输入:
22
样例输出:
7704
数据规模与约定:
1 <= n <= 1,000,000。

n = int(input)
F1 ,F2 = 1,1
for i in range(3,n+1)
    F1 = F2%10007,  F2 = (F1+F2)%10007
print(F2)

问题描述

小蓝定义了一个 Fibonacci 集合 F, 集合的元素如下定义:

  1. 最小的 5 个 Fibonacci 数 1,2,3,5,8属于集合 F 。

  2. 如果一个元素 x 属于 F, 则 3x+2、5x+33x+2、5x+3 和 8x+58x+5 都属于集合 F 。

  3. 其他元素都不而于 F 。

请问,这个集合中的第 2020 小元素的值是多少?

答案提交

这是一道结果填空题, 你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
a=[1,2,3]
sum1=0
for x in a:
  if sum1<10000:
    a.append(3*x+2)
    a.append(5*x+3)
    a.append(8*x+5)
    sum1+=1
  else:
    break
b=list(set(a))
b.sort()
print(b[2019])

题目描述

Fibonacci 数列是非常著名的数列:

F[1]=1F[1]=1,

F[2]=1F[2]=1,

对于 i>3,F[i]=F[i−1]+F[i−2]i>3,F[i]=F[i−1]+F[i−2]。

Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[N]/F[N+1]F[N]/F[N+1], 会趋近于黄金分割。

为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N+1]F[N]/F[N+1],并保留 8 位小数。

输入描述

输入一个正整数 N (1≤N≤2×109)N (1≤N≤2×109)。

输出描述

输出 F[N]/F[N+1]F[N]/F[N+1]。答案保留 8 位小数。

import os
import sys
n=int(input())
lst=[1,1]
if n<20:
  for i in range(2,n+1):
      lst.append(lst[i-1]+lst[i-2])
  print("%.8f" % (lst[n-1]/lst[n]))
else:
    print(0.61803399)

你可能感兴趣的:(蓝桥杯,算法,c++)