之前有学弟问过我一道java的面试题,题目不算难。用java实现杨辉三角。我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下。在写代码之前,我们先理清下面两个问题。

什么是杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列。在我国南宋数学家杨辉1261年所著的《详解九章算法》有提到过。在欧洲叫做帕斯卡三角形,如图。

杨辉三角

杨辉三角的规律即原理

1.每个数等于它上方两数之和。

2.每行数字左右对称,由1开始逐渐变大。

3.第n行的数字有n项。

4.第n行数字和为2n-1。

5.第n行的m个数可表示为 c(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。

6.第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。

7.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 c(n+1,i)=c(n,i)+c(n,i-1)。

8.(a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

9.将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n>1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。

10.将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0; 11=11^1; 121=11^2……当n>5时会不符合这一条性质,此时应把第n行的最右面的数字"1"放在个位,然后把左面的一个数字的个位对齐到十位... ...,以此类推,把空位用“0”补齐,然后把所有的数加起来,得到的数正好是11的n-1次方。以n=11为例,第十一行的数为:1,10,45,120,210,252,210,120,45,10,1,结果为 25937424601=1110。

清楚了这两点之后,我们的思路就十分的清晰了。实现的方法有很多种,这里我打算用二维数组加双重for循环来实现。

demo代码:

public class yanghui {

public static void main(string[] args) {

// 创建二维数组

int t[][]=new int[10][];

// 遍历二维数组的第一层

for (int i = 0; i < t.length; i++) {

// 初始化第二层数组的大小

t[i]=new int[i+1];

// 遍历第二层数组

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

// 将两侧的数组元素赋值为1

if(i==0||j==0||j==i){

t[i][j]=1;

}else{

// 其他数值通过公式计算

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

}

// 输出数组元素

system.out.print(t[i][j]+"\t");

}

//换行

system.out.println();

}

}

}

输出在控制台的结果如下:

这里只输出了十行的杨辉三角。优化一下,可以改成动态的获取行数。也可以变成正三角,只需在加一个循环用来计算空格。有兴趣的同学可以尝试一下。 ———来自java十八线程序猿

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

java代码杨辉三角_用java实现杨辉三角的示例代码相关推荐

  1. java文字手写识别_【手写文字识别】-JavaAPI示例代码

    手写文字识别-JavaAPI示例代码 不知不觉手写文字识别百度已经开始邀测了.需要的小伙伴去申请了哦.申请方式加入文字识别群找PM.或者工单提交申请.都要说明自己的APPID哦. 接口地址:https ...

  2. java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)

    Javaweb 面试题:理解才是最重要的,而不是原封不动的背下来 一.请简述doget和dopost它们的区别 1) get是从服务器上获取数据,post是向服务器传送数据. 2) 在客户端,Get方 ...

  3. java贪心算法 区间调度_贪心算法-区间调度问题解之证明(示例代码)

    一.贪心算法 定义:一个算法是贪心算法,如果它是通过一些小的步骤来一个求解,并且在每一步根据局部情况选择一个决定,使得某些主要的指标得到优化. 二.区间调度问题 1. 问题:我们有一组需求{1,2,3 ...

  4. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  5. python图形代码怎么写_【Python3-API】定制化图像接口示例代码

    Python3-urllib3-API定制化图像接口示例代码 AccessToken获取可以参考:http://ai.baidu.com/forum/topic/show/497663(Python3 ...

  6. java代码的执行机制_关于java代码的执行机制

    转载于:https://blog.csdn.net/houfeng777123/article/details/74316748 1.Java代码执行流程 ·第一步:*.java-->*.cla ...

  7. java final类的写法_重拾JavaSE基础——抽象类、接口、代码块、final和枚举

    今天继续回顾Java基础,有些东西用得不多,大家看看知道语法就好 主要内容 抽象类 抽象方法 抽象方法的写法 抽象方法是否可以私有化 抽象类的特征 抽象类有无构造器,能否实例化对象 抽象类的结构 抽象 ...

  8. java数据库表不存在_如果Java生产代码中不存在并在JUnit中确认,则创建数据库表...

    Code-Apprentice 2 java sql junit jdbc 我正在用Java编写数据库程序,并且想要创建一个表(如果它还不存在).我从中了解DatabaseMetaData.getTa ...

  9. 用java有理数类包含加减乘除_用java具体代码实现分数(即有理数)四则运算

    用java具体代码实现分数(即有理数)四则运算 1,背景 Java老师布置了一个关于有理数运算的题目,因为参考书上有基本代码,所以自己主要是对书上代码做了一点优化,使其用户交互性更加友好以及代码封装性 ...

  10. java用代码实现星期菜谱_基于JAVA的菜谱大全接口调用代码实例

    基于JAVA的菜谱大全接口调用代码实例 代码描述:基于JA V A的菜谱大全接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...

最新文章

  1. Vue前后台数据交互实例演示,使用axios传递json字符串、数组
  2. shell脚本字符串截取的8种方法
  3. myeclipse mysql 乱码_MyEclipse与mysql增改查现乱码解决方案绝对有效
  4. ASP.NET 开发者 开始学习ASP.NET Core 2吧
  5. c# datetime._C#| DateTime.GetHashCode()方法与示例
  6. HALCON 20.11:深度学习笔记(7)---术语表
  7. 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
  8. lasted是什么意思_lasted是什么意思_lasted怎么读_lasted翻译_用法_发音_词组_同反义词_继续存在( last的过去式和过去分词 )-新东方在线英语词典...
  9. 超级整理术--读后笔记
  10. android启动序列帧动画,关于 Lottie 动画的说明及应用
  11. Hadoop HA 部署
  12. 存储容量与地址空间的计算
  13. 计算机无法备份,win7不能备份系统如何解决?win7不能备份系统的解决方法
  14. 一年级计算机知识竞赛,2016一年级语文下册基础知识竞赛试题
  15. php htmlpurifier,php – HtmlPurifier – 允许数据属性
  16. Android 中自定义ViewGroup实现流式布局的效果
  17. 对ABAP程序调优的学习(三)并行并发读取
  18. 电脑连接信捷PLC方法
  19. 怎么用软件测试睡眠质量差怎么办,睡眠监测 App 到底有没有用?我睡了 34 晚,做了一个实验...
  20. 一点英语不会可以学java吗_不会英语能学编程吗 编程好不好学

热门文章

  1. web python pkcs11_使用pkcs11模块用公钥加密数据失败
  2. 游戏引擎架构第二版中文pdf_阿里架构有多牛,一文带你看遍阿里技术架构!
  3. redis实现轮询算法_基于zookeeper或redis实现分布式锁
  4. python处理netcdf_在python中高效读取netcdf变量
  5. js代码自动排版_接口测试平台代码实现9:菜单常显
  6. 监控url_熬夜之作:一文带你了解Cat分布式监控
  7. 各类型数据的导入与导出
  8. List与逗号分隔的字符串相互转换
  9. MySQL 中的三中循环 while loop repeat 的基本用法
  10. FPGA机器学习之stanford机器学习第三堂1