java 杨辉三角(贾宪三角,帕斯卡三角)
背景:
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合 。
代码实现过程:
1.首先定义变量行数 int len = 10;
2.初始化二维数组存放数据int [][] arr = new int[len][];for (int i = 0; i < len; i++) {arr[i] = new int[i+1];}
3.将数据存储到数组for (int i = 0; i < len; i++) {for (int j = 0; j < arr[i].length; j++) {if(j==0||j==arr[i].length-1){arr[i][j] = 1;}else {arr[i][j] = arr[i-1][j-1]+ arr[i-1][j];}}}
4.打印数组for (int i = 0; i < len; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j]+"\t");}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
对打印格式进行修改
5.首先获取半三角的最大数据 int maxNumber = arr[arr.length-1][(arr.length)/2];
6.判断这个数据为几位数,记录在count中int count = 0;while (maxNumber>1){maxNumber /= 10;count++;}
7.格式化输出:按照标准样式输出for (int i = 0; i < arr.length; i++) { // 每行前面的空格System.out.format("%"+((arr.length-i)*count)+"s","");for (int j = 0; j < arr[i].length; j++) { // 数据间的空隙System.out.format("%-"+count+"d",arr[i][j]);System.out.format("%-"+count+"s","");}System.out.println();}
打印结果:
完整代码:
System.out.println("---------杨辉三角(贾宪三角,帕斯卡三角)-----------");
// 首先定义变量行数int len = 10;
// 初始化二维数组存放数据int [][] arr = new int[len][];for (int i = 0; i < len; i++) {arr[i] = new int[i+1];}
// 将数据存储到数组for (int i = 0; i < len; i++) {for (int j = 0; j < arr[i].length; j++) {if(j==0||j==arr[i].length-1){arr[i][j] = 1;}else {arr[i][j] = arr[i-1][j-1]+ arr[i-1][j];}}}
// 打印数组for (int i = 0; i < len; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j]+"\t");}System.out.println();}
// 按照格式打印
// 首先获取半三角的最大数据int maxNumber = arr[arr.length-1][(arr.length)/2];
// 判断这个数据为几位数int count = 0;while (maxNumber>1){maxNumber /= 10;count++;}
// 格式化输出for (int i = 0; i < arr.length; i++) {
// 每行前面的空格System.out.format("%"+((arr.length-i)*count)+"s","");for (int j = 0; j < arr[i].length; j++) {
// 数据间的空隙System.out.format("%-"+count+"d",arr[i][j]);System.out.format("%-"+count+"s","");}System.out.println();}}
}
java 杨辉三角(贾宪三角,帕斯卡三角)相关推荐
- 【JAVA 杨辉三角 数学文字游戏】
@apiNote 杨辉三角 打印 解释 杨辉三角基本 规律 值为上一列对值 和 前一个值 的和 且首位都是1 我们可以通过二维数组来分析这个题目 package com.date808;import ...
- java杨辉三角_Java实现杨辉三角
杨辉三角用了两种方法解决 二维数组/递归方法 +-------------------------- import java.util.Scanner; public class YangHui02 ...
- Java杨辉三角最简单的实现方式
这里编写了杨辉三角的l两种实现方式,个人喜欢第一种,数组计算,第二种为纯计算的方式. 利用过 Java 语言中的流程控制语句,如条件语句.循环语句和跳转语句等知识输出一个指定行数的杨辉三角形. 杨辉三 ...
- java杨辉三角奇数_杨辉三角中的奇数与偶数
4-38 数学教 学 2009年第 4期 杨辉三角中的奇数与偶数 430061湖北省武昌实验中学 王先东 1.问题的提出 第 0行 杨辉三角是大家非常熟悉的,如果我们把杨 辉三角中的奇数换成1,偶数换 ...
- Java 杨辉三角代码
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ..... public class Yanghui{publi ...
- 4、杨辉三角(帕斯卡三角)_python版本
*说明:杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 实现方法生成器(generate),详见:廖雪峰_python生成器. 记一下生成器的关键点: 1. 通过列表 ...
- Java 杨辉三角
写在前言: 1.现在出去面试,面试官老是会问你一句话Java 怎么样? 不管是大数据岗位还是数据库都会问一句. 回来痛下决心,决定探索下这门语言的精髓,大数据很多框架也都是Java 写的,的确懂一门语 ...
- Java小白入门200例28之Java杨辉三角
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...
- 输入n行的杨辉三角java,杨辉三角 Java代码 可以根据输入 输出相应行数的杨辉三角...
/** * @see 打印出杨辉三角形(这是用的多维数组的形式,也可以根据公式计算),输出样式已经进行了调整 */ class YangHuiSanJiao { public static void ...
最新文章
- Django生命周期
- 博弈论 斯坦福game theory stanford week 1.1
- 亚麻纤维截面形态_天然丝纤维蚕丝
- 自动计算尺寸列表功能案例ios源码
- IDEA中Alt + Insert快捷键定制生成类方法
- bzoj1876 [SDOI2009]SuperGCD 辗转相减+高精
- 利用Arena Allocation避免HBase触发Full GC
- 笔记本电脑如何强制关机_笔记本按电源按钮不能关机只是关闭屏幕的解决办法...
- linux怎么重新编译c文件,linux编译c文件
- Excel组件使用配置文档下载
- Zookeeper基础使用
- 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
- linux 图形验证码不显示不出来的,linux下图形验证码显示问题
- vaspkit使用_Vaspkit做电荷密度差图
- 事件查看器-Windows程序闪退原因查看方法
- 灵飞经5龙生九子 第二十一章 危机四伏 2
- codeforces1359C Mixing Water
- 快递查询工具,一键查物流,派件时效怎么分析
- 菜鸟也来编程序 Windows脚本一日通
- 使用python计算一年有多少秒_python获取一年所有的日期
热门文章
- 天空之城系统开发模式源码
- ubuntu16.04安装kinetic ROS记录
- 高可用集群(HAC)
- 函数有参无参真有很大区别吗?
- error: can‘t create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
- 屏幕分辨率 VGA、HVGA、QVGA、WVGA、WQVGA
- java导出word实现方式一,在jsp中实现
- Linux高级命令进阶(week1_day2)--技术流ken
- Shell编程(week4_day5)--技术流ken
- 五子棋java毕业设计论文_基于Java的五子棋游戏的设计毕业论文,课程设计,研究生文献...