杨辉三角(帕斯卡三角形)前n行(其中n>=3)

1.核心代码

 for (int i = 0; i <n; i++) {//输出空格for (int j = 0; j <n-i-1; j++) {System.out.print(" ");}//输出值for (int k = 0; k <i+1; k++) {//保证首尾数字为1if(k==0||k==i){a[i][k]=1;//使每一行首尾都赋值为1System.out.print(a[i][k]+" ");}else{//从第三行起,才满足中间部分的数字=上方(相对位置)数字+上方数字的前一个数字if(i>=2){a[i][k]=a[i-1][k]+a[i-1][k-1];System.out.print(a[i][k]+" ");}}}//每打印完每一行数字时,需要换行System.out.println();
}

2.常见问题点分析

2.1 如何保证杨辉三角的输出为"正三角形式"

解决方案:a.输出空格时,空格数=n-1-行数(第几行,默认0为第一行);

​ b.输出值时.每输出一个数值,就要在值后面输出个空格.

​ c.每输出完一行的空格和数值时,一定要换行

2.2 如何输出中间部分的杨辉三角值

​ 分析:因为中间部分的数值=上方部分的数值+上方部分的前一个数字的数值,

​ 而这很明显与位置相关,可以考虑通过数组的下标来解决此问题

​ 解决方案:采用二维数组存放杨辉三角的值,并且其第一个下标代表(第几行),第二个下标代表(第几个)

2.3 未注意到不满足条件的n值的输出情况

分析:当n<3时,这类情况是不被允许的,因为这样做,要么程序报错要么就是这样做没有任何意义

解决方案:在外面套一层条件判断和一层循环,如果不满足条件,系统提示重新输入(提高容错率) ,若满足条件,输出完所有的结果后,会使用break关键字跳出该循环.

3.运行截图

4.源代码

import java.util.Scanner;
public class PascalTriangles{public static void main(String[] args) {System.out.println("(杨辉三角前n行)其中n>=3");Scanner scanner=new Scanner(System.in);System.out.println("请输入n的值: ");while (true){int n=scanner.nextInt();if(n>=3){int[][] a=new int[n][n];//第一个下标代表行,第二个下标代表着列//定义数组a,根据数组的下标来存放对应的杨辉三角的数值for (int i = 0; i <n; i++) {//输出空格for (int j = 0; j <n-i-1; j++) {System.out.print(" ");}//输出值for (int k = 0; k <i+1; k++) {//保证首尾数字为1if(k==0||k==i){a[i][k]=1;//使每一行首尾都赋值为1System.out.print(a[i][k]+" ");}else{//从第三行起,才满足中间部分的数字=上方(相对位置)数字+上方数字的前一个数字if(i>=2){a[i][k]=a[i-1][k]+a[i-1][k-1];System.out.print(a[i][k]+" ");}}}//打印完每一行数字时,需要换行System.out.println();}break;//输出完所有,就跳出循环}else{System.out.println("输入的值有误,请检查后重新输入!!!");}}}
}

杨辉三角(帕斯卡三角形)前n行(其中n>=3)相关推荐

  1. 杨辉三角 帕斯卡三角形(C语言)

    杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列. 在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年. 杨辉 ...

  2. python每行输出5个数_python打印杨辉三角及输出第m行第k个数

    1.打印杨辉三角及输出第m行第k个数 1.计算到m行,打印出k项 第m行有m项,m是正整数,因此k一定不会大于m,这个需求需要保存m行的数据,那么可以使用一个嵌套结构[[],[],[]] m=int( ...

  3. C语言——输出杨辉三角的前n行

     杨辉三角 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 按要求输出杨辉三角(如下)的前n行. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 . . . ...

  4. Leetcode-数据结构-118. 杨辉三角

    问题 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 方法一:数学 思路及解法 杨辉三角,是二项式系数在三角形中的一 ...

  5. LeetCode简单题之杨辉三角

    题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1], ...

  6. Leetcode 118. 杨辉三角 (每日一题 20210901)

    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行.在「杨辉三角」中,每个数是它左上方和右上方的数的和.示例 1:输入: numRows = 5 输出: [[1],[1,1], ...

  7. 杨辉三角Python解法

    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 例: 输入: numRows = 5 输出: [[1],[1,1], ...

  8. 力扣题目——118. 杨辉三角

    注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中 ...

  9. 杨辉三角(Python-动态规划)

    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1],[1, ...

最新文章

  1. python流程控制语句-Python流程控制语句
  2. 用proxool配置数据库连接池步骤
  3. LiveVideoStack线上交流分享 ( 六 ) —— VP9 Scalable Video Coding
  4. MSP430F5529 DriverLib 库函数学习笔记(五)定时器A
  5. dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)
  6. Intel Hyperscan简介
  7. 服务器修改文件句柄数,请问如何修改文件最大句柄数?
  8. 等待队列设备[置顶] Linux设备驱动,等待队列
  9. mysql回表慢sql_MySQL 的覆盖索引与回表
  10. Android界面绘制流程--------How Android Draws Views
  11. 题解【51nod 1290 Counting Diff Pairs】
  12. Physics Bodies(中文翻译)—UE4官方文档
  13. 推荐几款国产快速启动工具软件 总有一款适合你的
  14. java设置word审阅最终状态_如何使得打开word文件显示最终的修改状态
  15. Jvavscript- 跟着李南江学编程
  16. linux firefox 显示PDF,某个 pdf 文件用 firefox 和 okular 显示乱码
  17. 5款好用的bi报表工具
  18. STM32控制TFTLCD显示屏(理论)
  19. 程序员专属小情话,哎呦,不错哦!!!
  20. 有人说:世间唯一无刺的玫瑰,就是朋友。

热门文章

  1. 详解深度学习之 Embedding
  2. 关于StateMachine的那些事儿
  3. java 字符长度 中文_java 字符串的长度 含中文 英文 空格
  4. upload-labs通关(Pass-01~Pass-05)
  5. 区块链哪些公司得到a16z的投资?
  6. 【专题】中国手术机器人行业研究报告报告PDF合集分享(附原数据表)
  7. yzm10铺瓷砖 yzm10原创系列
  8. 回飞锅有哪些功能_回飞锅的制作方法
  9. matlab求解常系数线性差分方程,用matlab实现线性常系数差分方程的求解
  10. 非机动车无人值守停车场管理收费解决方案