斐波那契数列前20项50个数是多少

用java编写程序,输出斐波那契数列的前10个数。_百度知道
用java编写程序,输出斐波那契数列的前10个数。
别用太难得语言,55 要用java一开始的那些基础知识编写,21,34斐波那契数列数字排列规律为:1,1,2,3,5,8,13,谢谢合作。。。
我有更好的答案
print(&quot:/&#47。用了循环,因为每次打印出来以后;
j = (int)(i+j);
System.out.println();
}}&#47public class Fibonacci {
public static void main(String args[])
int i=1; &+j);
i = (int)(i+j); 1 1 2 3 5 8 13 21 34 55我给你大概解释一下吧,这个循环一共循环5次;n&=5,j=1,i或j原来的值就没用了.out,因此一共有10个数(你题目要求的);n++)
System,每次写出斐波那契数列中的2个数;/测试; &+i+&
for(int n=1
采纳率:85%
来自团队:
fabL i++) {
fabList.add(fabList.get(size + i - 2) + fabList.get(size + i - 1));
fabList.generate(10),如果设置10就输出10个;
public static List&Long& generate(int length) {
int size = fabList.size(); i & length -
public static void main(String[] args) {
if (size & length) {
for (int i = 0.add(1L).out.add(1L);
return fabList.subList(0, length).println(Fabnacci.generate(10));
}}Fabnaccipublic class Fabnacci {
private static List&Long& fabList = new ArrayList&Long&()
刚刚编写,测试无问题public static void main(String[] args){//数列的第一个和第二个数int num1 = 1;int num2 = 1;System.out.print(num1 + & & + num2 + & &);//从第三个数开始运算int result = 0;//用count计数final int count = 10;for(int i = 2; i & i++){result = num1 + num2;System.out.print(result + & &);num1 = num2;num2 =}
import java.util.Spublic class Fibonacci {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print(&请输入Fibonacci数列的项数n=?&);int n = scan.nextInt();long result = fibonacci(n);if(result&0){System.out.println(&Fibonacci[&+n+&]=&+result);}else{System.out.println(&Fibonacci[&+n+&]数值太大,溢出!&);}}public static long fibonacci(int n){if(n==1 || n==2){return 1;long f1 = 1;long f2 = 1;for(int i=3;i&=n;i++){f2 = f1 + f2;f1 = f2 - f1;}return
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
java 斐波那契数列 程序的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置:
>>>斐波那契数列1,1,2,3,5,8,…从第三个数起,以后的每一个数都..
斐波那契数列1,1,2,3,5,8,…从第三个数起,以后的每一个数都是它前面两个数的和,请问:(1)这个数列里的数字在奇偶性方面有什么规律?(2)这个数列的前2012个数中,有多少个奇数?
题型:解答题难度:中档来源:不详
(1)这数列的数字是按照:奇数、奇数、偶数这三个一组进行循环排列的;其中前两个是奇数,第三个是偶数.(2)…2;余数是2,那么这个数列的第2011个数和第2012个数是奇数;670×2+2,=1340+2,=1342(个);答:一共有1342个奇数.
马上分享给同学
据魔方格专家权威分析,试题“斐波那契数列1,1,2,3,5,8,…从第三个数起,以后的每一个数都..”主要考查你对&&找规律&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
学习目标:1、通过观察、实验、猜测、推理等活动发现图形的排列规律。 2、培养初步的观察、推理能力。知识点拨:在日常生活中,我们经常会碰到许多按一定顺序排列的数(或图形)。只要我们从不同的角度去分析研究,善于观察、分析、总结,就能发现规律,找到解决问题的方法。 找规律填数关键是根据已知的数找出数与数之间的规律。看相邻两数的倍数关系、差是常用的观察方法。 寻找数列的规律,通常从两个方面来考虑: (1)寻找各项与项数间的关系; (2)考虑相邻项之间的关系,然后,再总结出一般的规律。
发现相似题
与“斐波那契数列1,1,2,3,5,8,…从第三个数起,以后的每一个数都..”考查相似的试题有:
10289336152117161496218510976241006078苹果/安卓/wp
积分 5, 距离下一级还需 5 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯下一级可获得
道具: 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
如题 用SAS生成数列1,2,3,5,8,13.....的前20项 貌似是用数组做 但是不会啊 求助!。。
载入中......
& &do i = 2 to 20;& &
& &F = sum(F, lag(F));& &
yongyitian 发表于
& &F = 1;谢谢。。。受教了
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师903被浏览101,029分享邀请回答int Fib(int n)
return n & 2 ? 1 : (Fib(n-1) + Fib(n-2));
这是编程最方便的解法,当然,也是效率最低的解法,原因是会出现大量的重复计算。为了避免这种情况,可以采用递推的方式。2.递推求解int Fib[1000];
Fib[0] = 0;Fib[1] = 1;
for(int i = 2;i & 1000;i++) Fib[i] = Fib[i-1] + Fib[i-2];
递推的方法可以在O(n)的时间内求出Fib(n)的值。但是这实际还是不够好,因为当n很大时这个算法还是无能为力的。接下来就要来讲一个有意思的东西:矩阵。3.矩阵递推关系学过代数的人可以看出,下面这个式子是成立的:不停地利用这个式子迭代右边的列向量,会得到下面的式子:这样,问题就转化为如何计算这个矩阵的n次方了,可以采用快速幂的方法。是利用结合律快速计算幂次的方法。比如我要计算,我们知道,而可以通过来计算,而可以通过计算,以此类推。通过这种方法,可以在O(lbn)的时间里计算出一个数的n次幂。快速幂的代码如下:int Qpow(int a,int n)
int ans = 1;
if(n&1) ans *= a;
return ans;
将上述代码中的整型变量a变成矩阵,数的乘法变成矩阵乘法,就是矩阵快速幂了。比如用矩阵快速幂计算斐波那契数列:#include &cstdio&
#include &iostream&
using namespace std;
const int MOD = 10000;
struct matrix//定义矩阵结构体
int m[2][2];
}ans, base;
matrix multi(matrix a, matrix b)//定义矩阵乘法
matrix tmp;
for(int i = 0; i & 2; ++i)
for(int j = 0; j & 2; ++j)
tmp.m[i][j] = 0;
for(int k = 0; k & 2; ++k)
tmp.m[i][j] = (tmp.m[i][j] + a.m[i][k] * b.m[k][j]) % MOD;
return tmp;
int fast_mod(int n)
// 求矩阵 base 的
base.m[0][0] = base.m[0][1] = base.m[1][0] = 1;
base.m[1][1] = 0;
ans.m[0][0] = ans.m[1][1] = 1;
// ans 初始化为单位矩阵
ans.m[0][1] = ans.m[1][0] = 0;
//实现 ans *= 其中要先把 ans赋值给 tmp,然后用 ans = tmp * t
ans = multi(ans, base);
base = multi(base, base);
return ans.m[0][1];
int main()
while(scanf("%d", &n) && n != -1)
printf("%d\n", fast_mod(n));
4.通项公式无论如何,对于一个数列,我们都是希望可以建立与n的关系,也就是通项公式,而用不同方法去求解通项公式也是很有意思的。(1)构造等比数列设,化简得,比较系数得,解得,由于故有,设.则有,设,解得,即{}是等比数列。这样就有到了现在,把上述解出的结果全部带入上式,稍作变形,我们就可以写出斐波那契数列的通项公式了这个方法还是比较麻烦的,但是非常基础。事实上还有其他更简单的方法。(2)线性代数解法这个解法首先用到公式,如果可以找到矩阵使得为对角阵,我们就可以求出通项。下面需要一些高等代数知识,没学过的可直接跳过。首先令,解得两个特征根两个特征向量为则而解出,中间矩阵的n次方可以直接求出来:然后可以轻易得到通项公式,上边已经给出,这里不再赘述。(3)特征方程解法通过方法(2),我们可以推导出一般的线性递推数列的通项求解方法,也就是特征方程法。我们可以发现,对于这种数列,通项总是可以表示为的形式,因此可以直接利用已知项求解,。具体做法如下:a.由递推数列构造特征方程,解出两个特征值。b.带入,列出如下方程:解得这样直接写出通项公式,是比较简单的做法。(4)母函数法(此方法涉及组合数学知识)设斐波那契数列的母函数为,即解得再由幂级数展开公式……合并同类项并与的系数比较即可。到这里,求解斐波那契数列通项的方法就说的差不多了。无论是计算机求解还是数学推导,都体现出了非常多的技巧。而斐波那契数列的许多特性,就更加有意思了。三、斐波那契数列的数学性质1.与黄金比的关系由通项公式,求相邻两项的商的极限,结果是黄金比,所以斐波那契数列又称为黄金比数列。斐波那契数列和黄金比还和一个有趣的数学概念——连分数有关:2.一些简单的规律(1)任意连续四个斐波那契数,可以构造出一个毕达哥拉斯三元组。如取1,1,2,3.中间两数相乘再乘2 ==》 4外层2数乘积==》3中间两数平方和==》5得到3,4,5.下一组是5,12,13,,有兴趣的读者可以再试着推一推,证明也是容易的。(2)整除性每3个连续的斐波那契数有且只有一个被2整除,每4个连续的斐波那契数有且只有一个被3整除,每5个连续的斐波那契数有且只有一个被5整除,每6个连续的斐波那契数有且只有一个被8整除,每7个连续的斐波那契数有且只有一个被13整除,…………每n个连续的斐波那契数有且只有一个被整除.(3)一些恒等式3.杨辉三角中的斐波那契数列如图所示,每条斜线上的数的和就构成斐波那契数列。即有4.相关数列:卢卡斯(Lucas)数列卢卡斯数列的定义除了第0项为2之外,与斐波那契数列完全一致。即其通项公式为:卢卡斯数列和斐波那契数列有这些关系:5.组合数学(1)一些恒等式(2)同余特性当p为大于5的素数时,有:其中斐波那契数列还有许许多多的性质,我就不再一一介绍了。跑题了这么久,终于开始要真正回答问题了:斐波那契数列有什么用?四、斐波那契数列的应用1.算法a.斐波那契堆斐波那契堆(Fibonacci heap)是计算机科学中最小堆有序树的集合。它和二项式堆有类似的性质,可用于实现合并优先队列。特点是不涉及删除元素的操作有O(1)的平摊时间,用途包括稠密图每次Decrease-key只要O(1)的平摊时间,和二项堆的O(lgn)相比是巨大的改进。斐波那契堆由一组最小堆构成,这些最小堆是有根的无序树。可以进行插入、查找、合并和删除等操作1)插入:创建一个仅包含一个节点的新的斐波纳契堆,然后执行堆合并2)查找:由于用一个指针指向了具有最小值的根节点,因此查找最小的节点是平凡的操作。3)合并:简单合并两个斐波纳契堆的根表。即把两个斐波纳契堆的所有树的根首尾衔接并置。4)删除(释放)最小节点分为三步:查找最小的根节点并删除它,其所有的子节点都加入堆的根表,即它的子树都成为堆所包含的树;需要查找并维护堆的最小根节点,但这耗时较大。为此,同时完成堆的维护:对堆当前包含的树的度数从低到高,迭代执行具有相同度数的树的合并并实现最小树化调整,使得堆包含的树具有不同的度数。这一步使用一个数组,数组下标为根节点的度数,数组的值为指向该根节点指针。如果发现具有相同度数的其他根节点则合并两棵树并维护该数组的状态。对当前堆的所有根节点查找最小的根节点。5)降低一个点的键值:对一个节点的键值降低后,自键值降低的节点开始自下而上的迭代执行下述操作,直至到根节点或一个未被标记(marked)节点为止:如果当前节点键值小于其父节点的键值,则把该节点及其子树摘下来作为堆的新树的根节点;其原父节点如果是被标记(marked)节点,则也被摘下来作为堆的新树的根节点;如果其原父节点不是被标记(marked)节点且不是根节点,则其原父节点被加标记。如果堆的新树的根节点被标记(marked),则去除该标记。6)删除节点:把被删除节点的键值调整为负无穷小,然后执行“降低一个节点的键值”算法,然后再执行“删除最小节点”算法。b.欧几里得算法的时间复杂度欧几里得算法是求解两个正整数最大公约数的算法,又称辗转相除法。代码如下:int gcd(int a,int b)
return b ? gcd(b,a%b) : a;
在最坏的情况下,我们可以证明,若a较小,需要计算的次数为n,则.虽然说一般分析的时候会当成对数阶,但数论最常用的欧几里得算法竟然与斐波那契数列有关,也确实是很让人吃惊呢。2.物理学:氢原子能级问题假定我们现在有一些氢气原子,一个电子最初所处的位置是最低的能级(Ground lever of energy),属于稳定状态。它能获得一个能量子或二个能量子(Quanta of energy)而使它上升到第一能级或者第二能级。但是在第一级的电子如失掉一个能量子就会下降到最低能级,它如获得一个能量子就会上升到第二级来。现在研究气体吸收和放出能量的情形,假定最初电子是处在稳定状态即零能级,然后让它吸收能量,这电子可以跳到第1能级或第2能级。然后再让这气体放射能量,这时电子在1级能级的就要下降到0能级,而在第2能级的可能下降到0能级或者第1能级的位置去。电子所处的状态可能的情形是:1、2、3、5、8、13、21…种。这是斐波那契数列的一部份。3.自然界:植物的生长科学家发现,一些植物的花瓣、萼片、果实的数目以及排列的方式上,都有一个神奇的规律,它们都非常符合著名的斐波那契数列。例如:蓟,它们的头部几乎呈球状。在下图中,你可以看到两条不同方向的螺旋。我们可以数一下,顺时针旋转的(和左边那条旋转方向相同)螺旋一共有13条,而逆时针旋转的则有21条。此外还有菊花、向日葵、松果、菠萝等都是按这种方式生长的。还有菠萝、松子等,也都符合这个特点,一般会出现34,55,89和144这几个数字。最后上一张“斐波那契树”的图片:是的,这玩意就长这样,这种植物是存在的。4.波浪理论与股市这个答主不懂,大家可自行阅读文章。不过波浪的形状确实符合下边要说的斐波那契螺旋:5.斐波那契螺旋斐波那契螺旋又称黄金螺旋,在自然界中广泛存在。如图是一个边长为斐波那契数列的正方形组成的矩形。(加一句:看着这个图,是不是能发现是显而易见的?)这样连起来就是斐波那契螺旋了贝壳螺旋轮廓线向日葵的生长神奇的花6.建筑学7.据说一个小男孩参考斐波那契数列发明了太阳能电池树:一名13岁的男孩根据斐波那契数列,其产生的电力比太阳能光伏电池阵列多20-50%。类似从0和1开始,之后的数是之前两数的和,如0,1,1,2,3,5,8,13,21...在观察树枝分叉时发现它的分布模式类似斐波那契数列,这是大自然演化的一种结果,可能有助于树叶进行光合作用。因此,Dwye猜想为什么不按照斐波那契数列排列太阳能电池?他设计了太阳能电池树,发现它的输出电力提高了20%,每天接受光照的时间延长了2.5小时。8.斐波那契螺旋形的摇椅妈妈摇椅是设计师Patrick Messier为自己的妻子兼合作伙伴Sophie Fournier设计的,当时他们刚有了第一个宝宝。当Sophie宣布自己怀孕时,她说想要一把摇椅,但发现没有一把摇椅能满足美观舒适的标准,于是Patrick决定自己做一把。于是就有了这把妈妈摇椅。像是一个飘在空中的丝带,由一片纤维玻璃做成,曲线服从,经过特殊的高光聚氨酯处理。五、数学上的扩展(1)广义斐波那契数列定义:,数列满足:其通项为:当时即为斐波那契数列。(2)反斐波那契数列定义:反斐波那契数列相邻项比值的极限为。(3)巴都万数列()斐波那契数列可以刻画矩形,而巴都万数列则刻画的是三角形。其定义如下:(4)未解之谜:角谷猜想对一个正整数,若为奇数则乘3加1,若为偶数则除以2,通过有限次这样的操作,能否使得该数变成1?这个猜想和斐波那契数列又很大关系,具体的可以看。六、总结斐波那契数列是各个学科中都出现的小滑头,它许多漂亮的性质让我们着迷。上文我所描述的这些只是它的冰山一角,权当抛砖引玉。大家读完了我的答案,还可以再结合自己的专业去看一些相关的资料,更好的去了解这个有趣的数列。七、参考文献[1][2][3][4][5][6][7][8]['9][10][11][12][13][14]99753 条评论分享收藏感谢收起173 条评论分享收藏感谢收起扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
斐波那契数列前50个数是多少?加急!最好写上有多少个奇数,谢谢
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 81
为您推荐:
其他类似问题
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 81
用程序算一下就就行了,难道你不是编程人员…
扫描下载二维码

我要回帖

更多关于 斐波那契数列前n项和 的文章

 

随机推荐