杨辉三角的实现(Java)
杨辉三角的实现
一、什么是杨辉三角
杨辉三角是二项式系数在三角形中的一种几何排列。每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。第n行的数字有n项。前n行共[(1+n)n]/2 个数。
杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。例如在杨辉三角中,第3行的三个数恰好对应着两数和的平方的展开式的每一项的系数,第4行的四个数恰好依次对应两数和的立方的展开式的每一项的系数,即(a+b)³=a³+3a²b+3ab²+b³,以此类推,杨辉三角是最常见的算法便是用上一行递推计算。
杨辉三角是中国古代数学的杰出研究成果之一,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
二、代码实现
1.输出10行的杨辉三角
/*
* 1
* 11
* 121
* 1331
* ......
*/ public class YangHui
{
public static void main(String[] args)
{ int[][] YangHui=new int[10][];
for (int i=0;i<YangHui.length;i++)
{
YangHui[i]=new int[i+1];//建立二维数组,及行的元素个数 }
for (int i=0;i<YangHui.length;i++)
{
for (int j=0;j<YangHui[i].length;j++)
{
/*
j=0是二位数组第一个元素为0,i=j是在二位数组中最后一个元素
例:1 YangHui[0][0]
11 YangHui[1][0] YangHui[1][1]
121 YangHui[2][0] ... YangHui[2][2]
*/
if (j==0||i==j)
{
YangHui[i][j]=1;
//先给1行1列;2行1列,2行2列,3行1列,3行3列...赋值为1
}else
{
YangHui[i][j]=YangHui[i-1][j-1]+YangHui[i-1][j];
}//再对其他行列进行赋值计算
}
}
for (int i=0;i<YangHui.length;i++)
{
for (int m=10;m>i;m--)
{
System.out.print(" ");
}//,将直角三角形的杨辉三角转化成等边三角形的杨辉三角,空格和上层i联系外层i自增,内层m每行自减
for (int j=0;j<YangHui[i].length;j++)
{
System.out.print(YangHui[i][j]+" ");
//字符间间隔
}
System.out.println();
}
}
}
2输入行数再输出
/*
* 1
* 11
* 121
* 1331
* ......
*/ import java.util.Scanner; public class YangHui1
{
public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);
System.out.println("请输入需要输出几行的杨辉三角:");
int x=scanner.nextInt();
int[][] YangHui=new int[x][];
for (int i=0;i<YangHui.length;i++)
{
YangHui[i]=new int[i+1];//建立二维数组,及行的元素个数 }
for (int i=0;i<YangHui.length;i++)
{
for (int j=0;j<YangHui[i].length;j++)
{
/*
j=0是二位数组第一个元素为0,i=j是在二位数组中最后一个元素
例:1 YangHui[0][0]
11 YangHui[1][0] YangHui[1][1]
121 YangHui[2][0] ... YangHui[2][2]
*/
if (j==0||i==j)
{
YangHui[i][j]=1;
//先给1行1列;2行1列,2行2列,3行1列,3行3列...赋值为1
}else
{
YangHui[i][j]=YangHui[i-1][j-1]+YangHui[i-1][j];
}//再对其他行列进行赋值计算
}
}
for (int i=0;i<YangHui.length;i++)
{
for (int m=x;m>i;m--)
{
System.out.print(" ");
}//,将直角三角形的杨辉三角转化成等边三角形的杨辉三角,空格和上层i联系外层i自增,内层m每行自减
for (int j=0;j<YangHui[i].length;j++)
{
System.out.print(YangHui[i][j]+" ");
//字符间间隔
}
System.out.println();
}
}
}
三、大致实现过程
四、总结
实现杨辉三角主要使用了二维数组,利用外围数组控制行,内围数组控制列来实现,因为在实现过程中需要计算上一行的数值,所以在计算之前需要给每行第一个元素和最后一个元素赋值为1,这样就可以进行计算了。
杨辉三角的实现(Java)的更多相关文章
- Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
- 使用Java打印杨辉三角
package 杨辉三角; import java.util.Scanner; public class 三角 { private static Scanner scn; public static ...
- Java数组的应用:案例:杨辉三角,三维数组,字符串数组
//import java.util.Arrays; //包含Arrays //import java.util.Random; public class HelloWorld { public st ...
- Java实现杨辉三角
杨辉三角用了两种方法解决 二维数组/递归方法 +—————————————————————————— import java.util.Scanner; public class YangHui02 ...
- [Java练习题] -- 1. 使用java打印杨辉三角
package cn.fzm.demo1.array; import java.util.Scanner; /* * 需求:打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 ...
- Java之杨辉三角的实现
今天突然想温习一下Java的基础,想了想就写写杨辉三角吧 1.直接法,利用二维数组 import java.util.Scanner; public class Second { public sta ...
- 杨辉三角的打印(Java)
// //输入指定的行数,打印杨辉三角 // //每个数等于它上方两数之和. //每行数字左右对称,由1开始逐渐变大. //第n行的数字有n项. // // // //可从打印菱形的思想出发:???? ...
- java实现组合数_n!_杨辉三角_组合数递推公式_回文数_汉诺塔问题
一,使用计算机计算组合数 1,设计思想 (1)使用组合数公式利用n!来计算Cn^k=n!/k!(n-k)!用递推计算阶乘 (2)使用递推的方法用杨辉三角计算Cn+1^k=Cn^k-1+Cn^k 通过数 ...
- 1233: 输出杨辉三角前n行(Java)
WUSTOJ 1233: 输出杨辉三角前n行 题目 原题链接 Description 输出杨辉三角前n行. Input 输入一个数n(n <= 9) Output 输出杨辉三角前n行.(注意行末 ...
- 实验----Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
随机推荐
- Spring(四) SpringDI(1)
Spring 自动装配之依赖注入 依赖注入发生的时间 当 Spring IOC 容器完成了 Bean 定义资源的定位.载入和解析注册以后,IOC 容器中已经管理类 Bean 定义的相关数据,但是此时 ...
- 2019牛客多校第一场I Points Division(DP)题解
题意: n个点,分成两组A,B,如果点i在A中,那么贡献值\(a_i\),反之为\(b_i\). 现要求任意\(i \in A,j \in B\)不存在 \(x_i >= x_j\) 且 \(y ...
- mssql 2005安装
SQL Server 2005详细安装过程及配置 说明:个人感觉SQL Server 2005是目前所有的SQL Server版本当中最好用的一个版本了,原因就是这个版本比起其它版本来说要安装简单 ...
- free open movie API all in one
free open movie API all in one movie API TMDb API The Movie Database https://www.themoviedb.org/docu ...
- ituring 挂了
ituring 挂了 图灵社区 挂了 运行时错误 "/"应用程序中的服务器错误. 运行时错误 说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错 ...
- SQL Tutorials & MySQL & SQL Server
SQL Tutorials SQL MySQL https://www.mysql.com/ $ mysql --version # mysql Ver 8.0.21 for osx10.15 on ...
- Flutter Navigator2.0
Example 1 import 'package:dart_printf/dart_printf.dart'; import 'package:flutter/material.dart'; cla ...
- c++ 遍历当前程序的线程
#include <iostream> #include <Windows.h> #include <Psapi.h> #include <TlHelp32. ...
- 美最大政媒《国会山报》罕见发文阐述BTC,华盛顿金融盛赞SPC
比特币价格突破4万美元创下历史新高,美国最大政治媒体之一<国会山报>罕见的发表了文章对比特币进行阐明. 2021年已经过去一周,但比特币依然没有停下上涨的步伐.在刚刚过去2020年里,比特 ...
- go-admin在线开发平台学习-3[细节解析]
本章节主要的内容是对go-admin中的一些有趣编码进行分析,为自己以后提供一些借鉴 使用cli方式启动项目 使用cobra[眼镜蛇]完成强壮cli的工具,确保稳定. 使用cli的方式启动项目的好处显 ...