Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >怎样才能让斐波那契数列升到n而不结束呢?

怎样才能让斐波那契数列升到n而不结束呢?
EN

Stack Overflow用户
提问于 2016-11-21 04:09:17
回答 6查看 999关注 0票数 0

给定正整数n,创建一个由小于或等于n的斐波那契数列部分组成的列表。例如,如果为n is 6,则该列表为[0, 1, 1, 2, 3, 5],如果为n is 1,则该列表为[0, 1, 1]

目前,如果n等于数字6或20,则斐波那契数列将遍历n,例如,[0, 1, 1, 2, 3, 5, 8]表示n = 6[0, 1, 1, 2, 3, 5, 8, 13, 21]表示n = 20

这是我目前所拥有的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fib = [0,1]

result = 0

while result < n:
    result = fib[-1] + fib[-2]
    fib.append(result)
EN

回答 6

Stack Overflow用户

发布于 2016-11-21 04:16:04

编辑:如果你的意思是希望列表中的最后一项小于n,那么下面的答案是有效的,否则saurabh的答案是正确的。

如果你在while循环中当前迭代,并且你的结果超过了limit n,会发生什么呢?你还是要把它加进去...

这是一个穷人的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fib = [0,1]

result = 0
n = 6
while result < n:
    result = fib[-1] + fib[-2]
    if (result < n):
        fib.append(result)
print(fib)

对于6: 20的[0, 1, 1, 2, 3, 5][0, 1, 1, 2, 3, 5, 8, 13]

票数 0
EN

Stack Overflow用户

发布于 2016-11-21 04:21:13

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fib = [0,1]

result = fib[-1] + fib[-2]
while result < n:
    fib.append(result)
    result = fib[-1] + fib[-2]

这应该是可行的。

票数 0
EN

Stack Overflow用户

发布于 2016-11-21 04:48:47

Bug在追加之前没有使用<=和计算新的结果。它可以处理所有的测试用例,也可以处理加0和负数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def fib(n):
    if n < 0:                       # if you care about negative numbers.
        return []
    fib = [0]                       # handles n == 0
    result = 1                      # next result for n > 0
    while result <= n:              # handles "...less than or equal to n"
        fib.append(result)
        result = fib[-1] + fib[-2]
    return fib

for i in (-1,0,1,6,20):
    print(i,fib(i))

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-1 []
0 [0]
1 [0, 1, 1]
6 [0, 1, 1, 2, 3, 5]
20 [0, 1, 1, 2, 3, 5, 8, 13]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40712608

复制
相关文章
[剑指offer] 斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39
尾尾部落
2018/09/04
6480
斐波那契数列
如果使用递归求解,会重复计算一些子问题。例如,计算 f(4) 需要计算 f(3) 和 f(2),计算 f(3) 需要计算 f(2) 和 f(1),可以看到 f(2) 被重复计算了。
MickyInvQ
2022/05/06
4240
斐波那契数列
斐波那契数列
我们都知道斐波那契数(也叫兔子数)是一组十分有趣的数字,首相为1,第二项也是1,之后的每一项就是前两项之和,那么该如何实现输入第n项就打印其对应的斐波那契数字呢?
用户9996207
2023/01/13
4990
斐波那契数列
斐波那契数列的第n+2项同时也代表了集合{1,2,...,n}中所有不包含相邻正整数的子集个数。
饶文津
2020/05/31
7020
斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列。 代码实现
呆呆
2021/10/06
3920
斐波那契数列
斐波那契数列【别名黄金分割数列、兔子数列】 斐波那契数列的特点:第1,2两个数为1,1。从第三个数开始,该数是其前两个数之和。
司六米希
2022/11/15
5330
斐波那契数列
斐波那契数列
斐波那契数列的核心就是F(N) = F(N-1) + F(N-2),一般看到的都会采用递归,但是如果使用循环来实现且进行对比,容易发现不少对真是性能的影响
忧愁的chafry
2022/10/30
4600
斐波那契数列
斐波那契数列和斐波那契数
        斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
会洗碗的CV工程师
2022/11/29
7560
斐波那契数列和斐波那契数
[每日一题]斐波那契数列
问题 1131: 【C语言训练】斐波纳契数列 题目描述 斐波纳契数列 1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。 输入 一个整数N(N不能大于40) 输出 由N个“斐波纳契数”组成的“斐波纳契数列”。 样例输入 6 样例输出 1 1 2 3 5 8 提示 这类题目可能会涉及一些数学知识、逻辑锻炼、模拟问题等等,需要大家对C语言语法能熟练运用之后用来训练提高。 也可以自行查找知识,不明白可以在讨论版中讨论学习。
编程范 源代码公司
2018/04/16
8370
斐波那契数列
递归求解方法 class Solution { public: int fib(int n) { if (n == 0) return 0; if (n == 1) return 1; return fib(n - 1)+fib(n - 2); } };
大忽悠爱学习
2022/05/05
4480
斐波那契数列
斐波那契数列
问题斐波那契数列。(斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。前两项相加等于第三项)
算法与编程之美
2022/02/17
6160
斐波那契数列
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
木子星兮
2020/07/17
7060
斐波那契数列
#include <iostream> using namespace std; int n,a,b,p; int f(int x){ if(x <= 2){ return 1; } return (a*f(x-1)+b*f(x-2))%p; } int main() { cin>>n>>a>>b>>p; cout<<f(n)<<endl; return 0; }
且陶陶
2023/04/12
3360
斐波那契数列
斐波那契数列
斐波那契数列,1,1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89, 144,. 如果设F(n)为该数列的第n 项( n ∈N* ),那么数列有如下形式,F(n)=F(n-1)+F(n 2)。
砖业洋__
2023/05/06
2330
斐波那契数列
刷抖音突然刷到了斐波那契数列,突发奇想就用java写一个斐波那契数列。虽然很早之前学习算法,这应该是最基本的,但是对于一个干着普普通通工作的我已经是需要深思熟虑一番。
cultureSun
2023/09/02
2560
斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. public class Fibonacci { public static int[] record = null; public int Fibonaci(int n){ if(n<=1){ return n; } if(null == record){ record = new int[n+1];
用户3003813
2018/09/06
3910
[算法] - 斐波那契数列
牛客网 NC65-斐波那契数列 两种实现 迭代 public class Solution { public int Fibonacci(int n) { if(n == 0 || n == 1){ return n; } int a = 0; int b = 1; int fib = 0; for(int i = 2; i <= n; i++){
夹胡碰
2021/06/17
8050
斐波那契数列的N种算法
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)。
用砖头敲代码
2022/08/30
2960
Python|斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
算法与编程之美
2020/04/20
8110
Python|斐波那契数列
打印 斐波那契数列
方法一;递归(可以达到逐个输出的目的) public class FibonacciTest { public long fibonacci(long number){ if (number==0||number==1){ return number; }else{ // 该方法里调该方法 return fibonacci(number-1)+fibonacci(number-2);
传说之下的花儿
2023/04/16
1610

相似问题

斐波那契数列

40

PHP斐波那契数列

3413

逆向斐波那契数列

81

嵌套循环斐波那契数列

546

斐波那契数列递归法

232
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文