Java经典案例(1)——杨辉三角

嘤嘤嘤,最近在学Java,边听视频边记笔记,老师出了一道Java题目(没看答案,自己琢磨的,粗糙出请担待),我粗略的知道自己能做,于是练习了一下,通过调试bug,修改好了程序,于是做下了记录,希望能帮助大家!

题目:打印杨辉三角形(行数可以键盘录入)

输出下面的形式:

1

1        1

1        2     1

1        3     3     1

1        4     6     4     1

1        5     10    10    5     1

我下面进行题目的分析:

  • 首先,观察输出的数字图形,知道行数和列数应该是相同的,所以题目才要求:键盘输入行数(而不是输入行数和列数)
  • 接着,每一行的第一个元素和最后一个元素都是1
  • 然后,每行中除却了第一个元素和最后一个元素外的其他元素的值是"肩上"的两个元素的和,即arr[2][1] = arr[1][0]+arr[1];
  • 最后,注意到行数从2开始才会出现第三步的情况,且满足需要进行加法运算的元素的个数是i-1(i是当前所在的行的数值),所以可以用for循环嵌套使用

代码如下:

import java.util.Scanner;
class SwitchDemo
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入行数:");
		int raw = sc.nextInt();
		System.out.println("-----------------------");
		int[][] arr = new int[raw][raw];
		for(int i = 0;i < raw;i++)
		{
			arr[i][0] = 1;
			arr[i][i] = 1;
			if(i >= 2 && i < raw)
			{
				for(int j = 1;j <= i - 1;j++)
				{
					arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
				}
			}
			for(int j = 0;j <= i;j++)
			{
				System.out.print(arr[i][j]+"\t");
			}
			System.out.println();
		}
	}
}

代码截图效果:

关键词:键盘录入、for循环嵌套使用、二维数组

写到最后,有兴趣一起学Java的伙伴加我微信W17663712231,烦请关注我的微信公众号"空谷小莜蓝"哦!,谢谢大家

                                                                   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章