郑州轻工业大学-程序设计技术(Java)-PTA实验1(7-5)-打印杨辉三角

这篇具有很好参考价值的文章主要介绍了郑州轻工业大学-程序设计技术(Java)-PTA实验1(7-5)-打印杨辉三角。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目及代码示例


import java.util.Scanner;
class Main{
    public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    int i = 0;
    int j = 0;
    int[][] yanghui=new int[n][n];
    for(i=0;i<n;i++){
        for(j=0;j<=i;j++){
            if(j==0 || j==i){
                yanghui[i][j]=1;
                }else{
                yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
                }
            }
        }
    for(i=0;i<n;i++){
        for(j=0;j<=i;j++){
            System.out.printf("%-4d",yanghui[i][j]);
            }
            System.out.println();
        }
    }
}

最简单易懂的新手须知

本段代码知识点在于对for循环的应用以及二维数组的使用,同时将if/else语句嵌套在for循环中,并且在输出阶段对格式进行了规范,以下是详解:

1.for循环

在Java语言中,有三种循环语句,分别是for语句,while语句以及do-while语句,其中for语句的使用在代码编写的过程中最为常见。

语法格式:for(表达式1;表达式2;表达式3)

                {

                        语句;

                }

表达式1:给循环变量初始值

表达式2:给出循环条件

                (当表达式2的值为"真(true)"时,执行循环体,再执行表达式3改变变量的值)

                (当表达式2的值为"假(false)"时,跳出for循环,执行for循环后面的语句)

表达式3:给出循环变化的规律

例子:

int i=0;
for(i=0;i<10;i++)
{
    System.out.println("%d",i);
}

在这个for循环中,i=0是初始条件,i<10是判断条件,当i的大小满足这个条件时,执行for循环,即执行一次,i就加1,直到i=10时,不符合表达式2的条件,跳出循环,因此,运行结果如下:

0
1
2
3
4
5
6
7
8
9

上面是一个for循环的例子,在日常写代码时,我们常常会用到for循环的嵌套使用,就如实例代码中的一段:

for(i=0;i<n;i++){
        for(j=0;j<=i;j++){
            System.out.printf("%-4d",yanghui[i][j]);
            }
            System.out.println();
        }

在本段代码中我们使用了for循环的嵌套(注:i和j在整体代码开始时已被定义为整型int,n为杨辉三角的行数),下面我将对循环顺序作简短解释:

第一次循环:i=0,j=0,打印yanghui[0][0]的值,j+1,此时i=0,j=1,不满足j<=i,则跳出第二层循环,但此时依旧在第一层循环中,因此执行System.out.println();进行换行操作,至此,第一层for循环也结束了,i+1,进入第二次循环。

第二次循环:i=1,j=0,打印yanghui[1][0]的值,j+1,此时i=1,j=1,依旧满足j<=i,则再次进行第二层循环,打印yanghui[1][1]的值,j+1,此时i=1,j=2,不满足j<=i,则跳出第二层循环,执行System.out.println();进行换行操作,至此,第一层for循环再次结束了,i+1,进入第三次循环。

以此类推

2.二维数组的使用

在了解二维数组之前,我们需要知道一维数组如何去定义,声明一维数组变量的语法格式有以下两种格式:

数据类型[ ] 数据变量;

数据类型 数据变量[ ];

例:int[ ] a;

       int a[ ];

这两种格式都是正确的,当然,如果我们想声明多个一维数组可以使用一下格式:

例:int[ ] c,d,e;

       int c[ ],d[ ],e[ ];

声明过后,我们需要为数组分配空间,这里要用到new申请数组所需的内存单元,语法格式如下:

数组变量=new 数据类型[长度];

例:a=new int[6];

我们可以把以上两步结合,例如:

int[ ] a=new int[6];

如果我们想获取数组的长度,可以使用以下格式:

数组变量.length

新手须知!!!

int a[3]意为这个一维数组中有三个元素,但第一个元素为a[0],第二个元素为a[1],第三个元素为a[2],记住,没有a[3]!!!

我们可以对新数组赋初值,例如:

int a[4]={1,2,3},其中,第四个元素(a[3])我们没有赋初值,但系统还是会分配一个初值给它,即0,不同的数组类型系统所分配的初值也会不同

数据类型 初始化值 数据类型 初始化值
byte,short,int,long 0 char '\u0000'
float 0.0f boolean false
double 0.0 引用数据类型 null

现在我们开始介绍二维数组

(1)二维数组的声明

        int a[ ][ ];

        a=new int[3][3]; //三行三列的存储单元

        即int a[ ][ ]=new int[3][3];

        也可int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

a[0][0]=1 a[0][1]=2 a[0][2]=3
a[1][0]=4 a[1][1]=5 a[1][2]=6
a[2][0]=7 a[2][1]=8 a[2][2]=9

(2)获取数组的长度

        a.length;//获取二维数组的长度,即二维数组的行数

        a[0].length;//获取一维数组的长度,即二维数组的列数

3.输出格式

当我们想输出一个格式化的数时,可以遵循一下方法:

"%.xf"(x为整数)——输出一个保留x为小数的数值

"%yf"(y为整数)——输出一个宽度为y的数,若长度不足,则补上空格,右对齐,如"%7f"可将1.2格式化为"(四个空格)1.2"

"%-yf"(y为整数)——输出一个宽度为y的数,若长度不足,则补上空格,左对齐,如"%-7f"可将1.2格式化为"1.2(四个空格)"

"%+d":如"%+111"将输出为"+111"

"%,d":如"%,1110000"将输出为"1,110,000"

当组合使用时,如System.out.printf("%-4.1f",0.16);输出为"0.2(一个空格)"

以上就是本题的重要知识点,如果把这些知识点看懂了,那么上面的代码读起来可以说就是易如反掌了!


后言

本博客只是我作为一个Java初学者对目前所学的知识的最浅显的理解,暂时无法用专业语言表达出来,只能依照我自己的理解对学习过程做一个记录,以便以后复习使用,若有大佬路过请多多提出宝贵意见,指出我的错误,当然要是能给一些指导就更好啦(doge)!文章来源地址https://www.toymoban.com/news/detail-844711.html

到了这里,关于郑州轻工业大学-程序设计技术(Java)-PTA实验1(7-5)-打印杨辉三角的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 郑州轻工业大学Java实验五多线程编程

    一、实验目的 1. 掌握线程类的定义和使用方法; 2. 能够解决线程调度、线程同步等问题; 3. 能够选择使用合适的线程类和接口设计多线程程序完成相关操作,解决特定问题。 二、课程目标 支撑课程目标(4): 了解Java开发主流平台、工具的特点、使用方法和局限性,能够

    2024年02月08日
    浏览(40)
  • 郑州轻工业大学近几年数据结构试卷

    近几年数据结构试卷: 链接:https://pan.baidu.com/s/1_ns6dbps8i6UyLN5RNJJiw?pwd=g3z2  提取码:g3z2 2019-2020(2)数据结构期末考试试卷    一、 简答题(共10题,100分)  1、已知某二叉树的先序序列和中序序列分别为ABDGEHCFI和DGBHEACIF,请画出这棵二叉树,并画出二叉树对应的森林。  

    2024年01月25日
    浏览(55)
  • 郑州轻工业大学2022-2023(2)数据结构题目集

    目录 6-1 线性表元素的区间删除                                   6-2 有序表的插入 6-3 合并两个有序数组                                          6-4 顺序表操作集 6-5 递增的整数序列链表的插入                            6

    2024年02月10日
    浏览(56)
  • LitCTF2023 郑州轻工业大学首届网络安全赛 WP 部分

    由于刚接触CTF没多久 还是属于萌新级别的(中专高中生)也没怎么打过比赛记录一下学习的过程大佬绕过即可,后续会继续加油努力。 NSSCTF平台:https://www.nssctf.cn/ PS:记得所有的 flag 都改为 NSSCTF或者LitCTF 我Flag呢? 奇怪,放哪里了,怎么看不见呢?(初级难度) 直接 F12

    2024年02月05日
    浏览(52)
  • K-01BFS(2023河南萌新联赛第(五)场:郑州轻工业大学)

    链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网   思路: 直接枚举这个图中的拐点 这个拐点是经过左右平移到上下平移或者上下平移到左右平移 假设这个点事左到右后然后再从下到上 左到右就相当于走了个最长上升子序列,然后再从下到上 从下到上的过程你可

    2024年02月13日
    浏览(56)
  • 基于微信河南郑州某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月23日
    浏览(44)
  • 基于微信河南郑州某大学在线考试小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月23日
    浏览(63)
  • 基于微信河南郑州某大学球馆预约预约小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月20日
    浏览(46)
  • 基于微信河南郑州某大学教室座位预约小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月19日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包