杨辉三角(帕斯卡三角形)前n行(其中n>=3)
杨辉三角(帕斯卡三角形)前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)相关推荐
- 杨辉三角 帕斯卡三角形(C语言)
杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列. 在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年. 杨辉 ...
- python每行输出5个数_python打印杨辉三角及输出第m行第k个数
1.打印杨辉三角及输出第m行第k个数 1.计算到m行,打印出k项 第m行有m项,m是正整数,因此k一定不会大于m,这个需求需要保存m行的数据,那么可以使用一个嵌套结构[[],[],[]] m=int( ...
- C语言——输出杨辉三角的前n行
杨辉三角 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 按要求输出杨辉三角(如下)的前n行. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 . . . ...
- Leetcode-数据结构-118. 杨辉三角
问题 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 方法一:数学 思路及解法 杨辉三角,是二项式系数在三角形中的一 ...
- LeetCode简单题之杨辉三角
题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1], ...
- Leetcode 118. 杨辉三角 (每日一题 20210901)
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行.在「杨辉三角」中,每个数是它左上方和右上方的数的和.示例 1:输入: numRows = 5 输出: [[1],[1,1], ...
- 杨辉三角Python解法
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 例: 输入: numRows = 5 输出: [[1],[1,1], ...
- 力扣题目——118. 杨辉三角
注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中 ...
- 杨辉三角(Python-动态规划)
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1],[1, ...
最新文章
- python流程控制语句-Python流程控制语句
- 用proxool配置数据库连接池步骤
- LiveVideoStack线上交流分享 ( 六 ) —— VP9 Scalable Video Coding
- MSP430F5529 DriverLib 库函数学习笔记(五)定时器A
- dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)
- Intel Hyperscan简介
- 服务器修改文件句柄数,请问如何修改文件最大句柄数?
- 等待队列设备[置顶] Linux设备驱动,等待队列
- mysql回表慢sql_MySQL 的覆盖索引与回表
- Android界面绘制流程--------How Android Draws Views
- 题解【51nod 1290 Counting Diff Pairs】
- Physics Bodies(中文翻译)—UE4官方文档
- 推荐几款国产快速启动工具软件 总有一款适合你的
- java设置word审阅最终状态_如何使得打开word文件显示最终的修改状态
- Jvavscript- 跟着李南江学编程
- linux firefox 显示PDF,某个 pdf 文件用 firefox 和 okular 显示乱码
- 5款好用的bi报表工具
- STM32控制TFTLCD显示屏(理论)
- 程序员专属小情话,哎呦,不错哦!!!
- 有人说:世间唯一无刺的玫瑰,就是朋友。