摘要:这篇Java开发技术栏目下的“Java编程实现帕斯卡三角形代码示例”,介绍的技术点是“帕斯卡三角形、java编程、编程实现、Java、三角形、帕斯卡”,希望对大家开发技术学习和问题解决有帮助。

源程序揭秘

杨辉三角形性质:

每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1。

第 n 行的数字个数为 n 个。

第 n 行数字和为 2^(n-1) 。

每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角形。

第 n 行的第 1 个数为 1,第二个数为 1× (n-1) ,第三个数为 1× (n-1) × ( n-2) /2,第四个数为

1× (n-1) × (n-2) /2× (n-3) /3…依此类推。

算法原理1:

使用一个二维数组 yh[][] 存储杨辉三角形的数据,行和列的大小为所需要输出的行数 Row(本程

序中 Row 为 10)。

使用 for 循环使杨辉三角中除了最外层(不包括杨辉三角底边)的数为 1 ;

使用语句 yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j] 使第 i 行第 j 列的数据等于第(i-1) 行

第(j-1)列的数据与第(i-1)行第(j)列的数据之和,即每个数字等于上一行的左右两个数字之和。

package com.work;

public class YangHuiSanJiao

{

public static void main(String[] args) {

int [][]a = new int [10][10];

for(int n = 0; n < 10;n++)

{

a[n][0] = 1;

a[n][n] = 1;

}

for(int n = 2; n <10; n++)

{

for(int j = 1; j < n; j++)

{

a[n][j] = a[n -1][j -1] + a[n - 1][j];

}

}

for(int n = 0; n < 10; n++)

{

for(int k = 0; k < 2 * (10 - n) - 1; k++)

{

System.out.print(" ");

}

for(int j = 0; j <= n; j++)

{

System. out.print(a[n][j] + " ");

}

System.out.println();

}

}

}

方式二

package com.face;

import java.util.Scanner;

public class YangHui {

public static void main(String[] args) {

printYFTriangle();

}

/**

* 1 要理解下面的实现,首先要明白int数组中元素默认值为 0

* 2 然后每一次迭代打印新的一行的元素的时候:

* 新的特定位置的元素 = 该位置原来的元素 + 该位置的前一个位置的值

*/

public static void printYFTriangle(){ System.out.println("杨辉三角,您准备输出的行数:"); Scanner input = new Scanner(System.in); int lines = input.nextInt();//获得循环的行数; int[] a = new int[lines + 1];//临时存储数据用; int previous = 1; //默认第一个数; for (int i = 1; i <= lines; i ++){//i 用来控制行数; for(int j=1;j<=lines-i;j++){//输出空格,很easy; System.out.print(" "); } for (int j = 1; j <= i; j++){ int current = a[j];//先获得后一个数, a[j] = previous + current; previous = current; System.out.print(a[j] + " "); } System.out.println(); }}}

方法三:递归实现

package com.face;

import java.util.Scanner;

public class DiGui {

static int fun(int n,int k){

//n,行,k:列

if(k==1||n==k)

return 1;

else

return fun(n-1,k-1)+fun(n-1,k);

}

public static void main(String[] args) {

int lines;

System.out.println("请输入行数:");

Scanner input=new Scanner(System.in);

lines=input.nextInt();

for(int i=1;i<=lines;i++){

for(int k=1;k

System.out.print(" ");

}

for(int j=1;j<=i;j++){

System.out.print(fun(i,j)+" ");

}

System.out.println();

}

}

}

请输入行数:

6

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

再分享一个实例:

/**

* 打印杨辉三角形(帕斯卡三角形),打印10行

*

*/

public class Yanghuisanjiao {

public static void main(String[] args) {

int [][] a = new int[11][11];

for (int i = 0 ; i < 10 ; i++) {

a[i][0] = 1;

a[i][i] = 1;

}

for (int i = 1 ; i < 10 ; i ++) {

for (int j = 1; j < i ; j++) {

a[i][j] = a[i-1][j-1] + a[i-1][j];

}

}

for (int i = 0; i < 10 ; i++) {

for (int j = 0; j < 10-i;j++) {

System.out.print(" ");

}

for (int k = 0; k < 10;k++) {

if (a[i][k] != 0) {

System.out.print(a[i][k]+" ");

}

}

System.out.println();

}

}

}

结果:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

总结

以上就是本文关于Java编程实现帕斯卡三角形代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

java 帕斯卡_Java编程实现帕斯卡三角形代码示例相关推荐

  1. java entryset()_Java TreeMap entrySet()用法及代码示例

    Java中的java.util.TreeMap.entrySet()方法用于从树图中包含的相同元素中创建一个集合.它本质上返回树图的集合视图,或者我们可以创建一个新集合并将Map元素存储到其中. 用法 ...

  2. java generate()_Java IntStream generate()用法及代码示例

    IntStream generate(IntSupplier s)返回一个无限顺序无序流,其中每个元素由提供的IntSupplier(提供int值的结果)生成.这适用于生成恒定流,随机元素流等. 用法 ...

  3. java formatter()_Java Formatter locale()用法及代码示例

    locale()方法是java.util.Formatter的内置方法,该方法返回语言环境.此区域设置由格式化程序构造设置.具有语言环境参数的该对象的format方法不会更改此值. 用法: publi ...

  4. java ready()_Java BufferedReader ready()用法及代码示例

    Java中BufferedReader类的ready()方法用于验证缓冲区流是否已准备好被读取.在两种情况下,如果缓冲区不为空或主流已准备就绪,则表示缓冲区流已准备就绪. 用法: public boo ...

  5. java三角形代码,Java编程实现帕斯卡三角形代码示例

    源程序揭秘 杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1. 第 n 行的数字个数为 n 个. 第 n 行数字和为 2^(n-1) . 每个数字等于上一行的左右两个数字之 ...

  6. 羊车门问题python_python编程羊车门问题代码示例

    问题: 有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...

  7. python画羊_python编程羊车门问题代码示例

    问题: 有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...

  8. java 凌晨,java获取整点与凌晨的时间戳代码示例

    本篇文章小编给大家分享一下java获取整点与凌晨的时间戳代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Java中获取整点时间戳 在实际的开发 ...

  9. java泛型编程_Java编程泛型限定代码分享

    泛型 一般 出现在集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们常用的容器中, 越是单一越好处理啊! 泛型的限定: ? 是通配符 指代 任意类型 ...

  10. java一个方法排他调用_Java编程实现排他锁代码详解

    一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...

最新文章

  1. html中open打开新网页,JavaScript-打开新窗口(window.open)
  2. java spring怎么运行_java – 如何使用spring异步运行方法?
  3. 这群人学做AI架构师,目标却是让人们感知不到AI的存在
  4. java程序代码的运行机制_1.4Java程序的运行机制
  5. android adb 传文件大小,使用adb在电脑和手机间传文件
  6. e480换高分屏_全高清都不够用?是时候趁着双11上飞利浦的高分屏了
  7. react学习(45)----react组件
  8. Laravel 生成二维码的方法
  9. ubuntu 16.04 修改光标/鼠标大小
  10. 用户奖励体系有哪些反作弊的机制?
  11. python deque索引超出范围_python的常用内建模块与常用第三方模块
  12. BZOJ4066 简单题(KD-Tree)
  13. 普通路由器改4g路由器_4G工业路由器在安防领域中的应用
  14. 分区助手扩大c盘后自动修复_怎么使用扩展分区向导来扩大C盘
  15. ORACLE归档日志详解
  16. java ascii码大小写转换_使用「ASCII」转换大小写
  17. 掌握一项陌生技能,没你想得那么难
  18. Android通过WebSocket建立一个长连接(带心跳检测)从服务器端接收消息
  19. jQuery事件总结
  20. 三国志10在win7下的安装

热门文章

  1. 实习日记 08/23 day33 理解JVM---Java核心卷中的并发
  2. 杨勇博客之家-博客文章导航
  3. Linux下cuda卸载
  4. Python:实现矩阵的Schur complement舒尔补算法(附完整源码)
  5. ACM-ICPC 2018 北京赛区网络预赛 B Tomb Raider(二进制枚举暴力)
  6. NCPC 2015 A Adjoin the Networks(好题)
  7. 相见恨晚的编程学习词典!谁还不是南极滑冰的那个崽儿?!
  8. 常用证件照照片规格(英寸) (厘米) (像素)
  9. 知乎|10个程序员必备免费电子书下载网站
  10. Java 实现 n 阶行列式的求解