递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc

上传人:rrsccc 文档编号:9003622 上传时间:2021-01-29 格式:DOC 页数:12 大小:35.50KB
返回 下载 相关 举报
递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc_第1页
第1页 / 共12页
递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc_第2页
第2页 / 共12页
递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc_第3页
第3页 / 共12页
递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc_第4页
第4页 / 共12页
递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc》由会员分享,可在线阅读,更多相关《递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number).doc(12页珍藏版)》请在三一文库上搜索。

1、递归杨辉三角费尔波特奇数(Recursive Yang Hui triangle, Philpott, odd number)/ *费波纳奇数列(斐波那契数列)该数列由十三世纪意大利数学家费波纳奇发现数列中的一系列数字常被人们称之为神奇数、奇异数(费波纳茨)。具体数列为:1,1,2,3,5,8,13,21,34,55,89144233,.数列的公式:A0 = A1 = 1;= -1 + AN-2(N = 2,3,4,.)用语言来表达的话,就是:从数列的第三项数字开始,每个数字等于前两个相邻数字之和。* /公共课testgui public static void main(String arg

2、s)int极其;尝试极其=整数表示形式。(args 0 ); catch(异常E)极其= 0;E. printstacktrace();系统。出来。println(ISPO(极其);public static int ISPO(int n)int = 1;int = 1;int;如果(n0)返回0;如果(n1)返回A1;如果(n2)一位位=(n-1)+(n-2);返回一个;其他 系统的输入(“你输入为负数,不合规定,因而返回了0”);返回0;/ /用递归的方式输出杨辉三角公共课testyanghui public static void main(String args)/ /从控制台输入数据

3、int极其;尝试极其=整数表示形式。(args 0 ); catch(异常E)极其= 0;E. printstacktrace();YangHui(极其);public static void(int n) YangHui1 /等于的情况如果(n1)系统。出来。println(”+ N); else if(n = 2) / 2的情况YangHui(n-1);系统。输出。打印(1 +“”+ 1);系统,println(“”); else if(N3) /大于等于3的情况YangHui(n-1);为(int = i 0;i =(n-1);i + +)系统的打印(杰成(n-1)/杰成(n-i-1)/

4、杰成(我)+“”);系统,println(“”);/ /求阶乘int JieCheng(public static int k)*如果(k1)返回1;其他 杰成返回k(k-1); /*返回K = = 0 | | K = = 1?1:k(k-1)杰成;/ /下面是网上参考的资料,声明应用请尊重作者的版权。上面的程序参考了下面的思想。放在这仅供参考。/ *如何输出杨辉三角悬赏分:5解决时间:2008-4-11 17:20在80字符的屏幕上输出杨辉三角,要求1在中间,形如1 / * * / 0行第1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6

5、11 7 21 35 35 21 7 11,8,28,56,70,56,28,8,11,9,36,84,126,126,84,36,9,1提问者:倚名001一级最佳答案大家知道利用数组数组的方法输出杨辉三角是一件比较容易的事情,在许多的教材上都能够找到,而且计算速度比较快,但是有个缺点就是当输出的阶数比较大的时候,需要占用较多的存储空间。下面我尝试用利用非数组的方法输出杨辉三角1。利用公式学了高中数学我们就知道有公式(A + B)n = c0n a0bn + +美国有线电视新闻网anb0 CKN akbn-k. .杨辉三角的每一个元素都可以由公式计算出来CKN akbn-k,有了这个公式我们就

6、可以很快写出程序来。/ *利用公式输出杨辉三角*编程:郑2004.10.27*程序在BCB6.0下编译通过* /#包括“stdio. h”静态长阶乘(长n) / N的阶乘返回N = = 0 | | n = = 1?1:n *阶乘(n-1); /阶乘静态长GetElem(长N,长K) /利用公式计算杨辉三角的第排行,Col列的元素回归因子(N)/(factorial(n-k)*因子(K); / GetElem空输出(长n) /输出杨辉三角,N为杨辉三角的阶数整数行;对于(行= 0;行 = n;行+ +)对于(= 0;printf(“% 5ld”GetElem(行,列);printf(“N”);输

7、出2。利用递归观察下面的杨辉三角(你也可以用上面的性质,通过数学方法推导出来)一1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 11 10 45 120 210 252 210 120 45 10 1我们可以得到下面的性质(其实我们用数组的方法也是用这个性质)1。边界上的元素都是12。中间的任何一个元素都是他的上一行的两个相邻元素的和如果我们用f(n,k)表示杨辉三角的第N行的第K个元素,则上边的性质可以

8、表示成F(n,k)= 1(k = 0或者n = k)F(n,k)= F(n-1,k-1)+ F(n,k)即CKN akbn-k = 1(k = 0或者n = k)CKN akbn-k = CKN akbn-k + CKN akbn-k有了上面的性质我们很容易写出下面的程序/ *利用递归输出杨辉三角*编程:郑2004.10.27*程序在BCB6.0下编译通过* /#包括“stdio. h”静态长阶乘(长n) / N的阶乘返回N = = 0 | | n = = 1?1:n *阶乘(n-1); /阶乘静态长GetElem(长N,长K) /利用递归计算杨辉三角的第排行,Col列的元素如果(K = = 0 | | n = = k)返回1;否则返回GetElem(n-1,k-1)+ GetElem(n,k); / GetElem空输出(长n) /输出杨辉三角,N为杨辉三角的阶数整数行;对于(行= 0;行 = n;行+ +)对于(= 0;printf(“% 5ld”GetElem(行,列);printf(“N”);输出* /

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1