蓝桥杯 基础练习 杨辉三角形 JAVA
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 基础练习 杨辉三角形 JAVA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
問題描述
楊輝三角形又稱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。
思路
- 楊輝三角每行的首尾都是1,三角內部數字等于它兩肩上的數字相加
- 題目要求直角三角形
- 第i行就有i個數,嵌套循環
- 運用二維數組建立空間
代碼
import java.util.Scanner;//楊輝三角形 public class Demo10 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int arr[][] = new int [n][n];for(int i=0;i<n;i++) {for(int j=0;j<=i;j++) {if(j==0||j==i) {arr[i][j]=1;}else {arr[i][j]=arr[i-1][j]+arr[i-1][j-1];} }}for(int i=0;i<n;i++) {for(int j=0;j<=i;j++) {System.out.print(arr[i][j]+" ");}System.out.println();}sc.close();} }總結
- 我看題時明白是求直角三角形,但沒注意題目要求輸出時各數中間要使用一個空格,典型的沒仔細審題,導致在運行時沒問題但提交全是錯誤,一直找不到原因。一定一定一定要仔細看題!!!
拓展
接下來我們再試著做一下等腰三角形
其實賦值依然不變,但是輸出打印時注意前面有空格了
import java.util.Scanner;//等腰楊輝三角形 public class Demo10_1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int arr[][] = new int[n][n];for(int i=0;i<n;i++) {for(int j=0;j<=i;j++) {if(j==0||j==i) {arr[i][j]=1;}else {arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; }}}for(int i=0;i<n;i++) {for(int j=n-i;j>1;j--) {//打印空格 循環條件也可以是(int j=0;j<n-i-1;j++)System.out.print(" ");}for(int k=0;k<=i;k++) {System.out.print(arr[i][k]+" "); }System.out.println();}} }?
致讀者?
請特別注意,在藍橋杯練習系統,Java的主類名必須是Main
菜鳥正在學習,慢慢進步,如有意見或建議,望大佬指正!歡迎評論留言
總結
以上是生活随笔為你收集整理的蓝桥杯 基础练习 杨辉三角形 JAVA的全部內容,希望文章能夠幫你解決所遇到的問題。