列表

详情


NC238635. 至至子的斐波那契

描述

至至子很喜欢斐波那契数列,斐波那契数列 F_n 的定义如下:



至至子会进行 T 次询问,每次询问给定一个数 a_i,他想让你找到斐波那契数列中距离 a_i 最近的一项,即求一个正整数 x 使得在满足 最小的基础上 x 尽量小。

输入描述

第一行一个正整数 T,表示询问的次数。

接下来的 T 行,每行一个正整数 a_i,表示询问的数。

输出描述

T 行,每行一个正整数 x,表示你的答案。

示例1

输入:

4
1
6
7
25

输出:

1
5
6
8

说明:

F_1F_9 分别为 1,1,2,3,5,8,13,21,34。而离 1 最近的是 F_1F_2,由于 1 更小,输出 1。离 6 最近的是 F_5 = 5,所以输出 5。离 7 最近的是 F_6 = 8,故输出 6。离 25 最近的是 F_8 = 21,故输出 8

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 44ms, 内存消耗: 4536K, 提交时间: 2023-08-13 15:40:36

n=int(input())
for i in range(n):
    x=int(input())
    a=1
    b=1
    f=1
    while(b<x):
        c=a+b
        a=b
        b=c
        f+=1
    if b-x<x-a:
        print(f+1)
    else:
        print(f)

上一题