杨辉三角_二维数组的好例子(转载)

 2023-09-05 阅读 19 评论 0

摘要:package com.test;import java.util.Scanner;public class Test { public static void main(String[] args)// 创建一个对象用来调用,实现控制台输入输出,因为输入的是字符,所以a.show调用对象的时候强调转换一下。 { YangHui a = new YangHui(); Sc

package com.test;
import java.util.Scanner;
public class Test {
    public static void main(String[] args)// 创建一个对象用来调用,实现控制台输入输出,因为输入的是字符,所以a.show调用对象的时候强调转换一下。
    {
        YangHui a = new YangHui();
        Scanner s = new Scanner(System.in);
        System.out.println("请输入一个数字代表行数:");
        String str = s.nextLine();
        a.show(Integer.valueOf(str));
    }
}
class YangHui// 对象调用类名
{
    public void show(int n)
    {
        int[][] s = new int[n + 1][n + 1];// 定义二维数组,因为是n行,所以定义n+1,防止溢出(循环从1开始)
        for (int x = 1; x <= n; x++)// 此大循环用于控制行数
        {
            for (int z = 1; z <= n + 1 - x; z++)// 此小循环用于控制每行前面的空格数,越往后越不对齐,自己调整一下
            {
                System.out.print(" ");
            }
            for (int y = 1; y <= x; y++)// 此循环用于控制每行个数
            {
                if (y == 1)// 固定每行第一个数的值,并赋予二维数组,并打印
                {
                    System.out.print(y + " ");
                    s[x][y] = 1;
                }
                else if (y == x)// 固定每行最后一个数的值,并赋予二维数组,并打印
                {
                    System.out.print(1 + " ");
                    s[x][y] = 1;
                }
                else// 用于打印出除开每行第一个与最后一个的中间数值,并赋予二维数组
                {
                    System.out.print(s[x - 1][y - 1] + s[x - 1][y] + " ");// 每一行的中间数值,都是由上一行的s[x-1][y-1]+s[x-1][y]相加而得到,并赋予二维数组
                    s[x][y] = s[x - 1][y - 1] + s[x - 1][y]; //记录一下所在的值,为下一行做准备
                }
            }
            System.out.println();// 换行
        }
    }
}

转载于:https://www.cnblogs.com/bluewelkin/p/4045244.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/1669.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息