问题描述
斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。
输入:在一行输人一个正整数n(n>=10)。
输出:在一行输出大于n的最小斐波那契数。
输入样例:10
输出样例:13
解决方案
首先使用了生成器这个python语言。生成器释义:使用了 yield 的函数被称为生成器(generator)。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。使用生成器得到斐波那契数列,再将数列以列表形式显示出来。将数列中的数与输入的整数相对比,筛选出符合条件的数,再创建一个新的列表将符合条件的数放入。最后打印出新列表的第一个元素,即为符合条件的最小斐波那契数!
结语
在这一次的算法创作中,使用了一个比较重要的知识点:生成器。运用生成器的特点将斐波那契数列构造出来.再利用列表的特性,将数列加入到列表中,并且生成判断条件,最后根据列表支持的操作输出最后符合条件的元素。本次创作在生成数列和如何将最后结果输出遇到了较大的麻烦,逻辑性较强,后续我们会投入更多时间在PTA以及蓝桥杯的编程题的练习中,提升自己。
实习编辑:李欣容
作者:彭诚 严洁 张淑娟
稿件来源:深度学习与文旅应用实验室(DLETA)