前言:
今天兄弟们对“c语言写杨辉三角”大体比较关心,看官们都需要了解一些“c语言写杨辉三角”的相关内容。那么小编在网上网罗了一些对于“c语言写杨辉三角””的相关知识,希望朋友们能喜欢,兄弟们快快来学习一下吧!问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入格式
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
数据规模与约定
1 <= n <= 34。
=================================
解题思路:
①:读完题目,看到需要打印行列,果断使用二维数组,创建二维数组triangleArray。
②:我们可以发现规律,杨辉三角形的第一列和最后一列都是一,所以第一步就是把第一列和最后一列的数1打印出来。
③:第二个规律,第一、二行都是1可以用步骤②解决,从第三行开始发现,除去第一列和最后一列,中间的数triangleArray[n][n]等于triangleArray[n-1][n]+triangleArray[n-1][n-1],即等于次位置上方的数加上左前方的数。
④:第三个规律,第几行,就有几列,所以我们在输出时就不能输出二维数组中无用的数。
思路分析完毕,代码演示:
import java.util.Scanner;
public class YangHuiTriangle {
public static void main(String[] args) {
//创建一个扫描对象
Scanner sc = new Scanner(System.in);
//接收控制台输入的数,表示打印几行杨辉三角
int n = sc.nextInt();
//创建一个二维数组
int[][] triangleArray = new int[n][n];
//第1列和第n+1列的数为1
for(int i = 0; i < n; i++) {
triangleArray[i][0] = 1; //第一列为1
}
for(int j = 0; j < n; j++) {
triangleArray[j][j] = 1;
}
//完成中间的数的赋值
for(int i = 2; i < triangleArray.length; i++) {
for(int j = 1; j < triangleArray[i].length; j++) {
triangleArray[i][j] = triangleArray[i-1][j] + triangleArray[i-1][j-1];
}
}
//打印二维数组中不为0的数
for(int i = 0; i < triangleArray.length; i++) {
for(int j = 0; j < triangleArray[i].length; j++) {
if(triangleArray[i][j] != 0 ) {
System.out.print(triangleArray[i][j] + " "); //不换行
}
}
System.out.println(); //换行
}
sc.close();
}
}
================================
之后还会继续分享Java练习题和一些重难点,后期会录制视频讲解,初来乍到,关注一下吧
标签: #c语言写杨辉三角