java語言楊輝三角,java寫楊輝三角

本文目錄一覽:

java編寫楊輝三角~~~

#include stdio.h

main()

{ int i,j,n=0,a[17][17]={0};

while(n1 || n16)

{printf(“請輸入楊輝三角形的行數:”);

scanf(“%d”,n);

}

for(i=0;in;i++)

a[i][0]=1; /*第一列全置為一*/

for(i=1;in;i++)

for(j=1;j=i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];/*每個數是上面兩數之和*/

for(i=0;in;i++) /*輸出楊輝三角*/

{for(j=0;j=i;j++)

printf(“%5d”,a[i][j]);

printf(“\n”);

}

}

用JAVA語言編譯楊輝三角形,怎麼做?

import java.util.Scanner;

public class PascalTriangle {

public static void main(String[] args) {

System.out.print(“Please input a digit for pascal triangle: “);

Scanner scanner = new Scanner(System.in);

final int num = scanner.nextInt();

int[][] ary = getPascalTriangle(num);

for(int[] item: ary){

for(int value: item){

System.out.print((value 0? value: “”) + ” “);

}

System.out.println();

}

}

private static int[][] getPascalTriangle(final int num) {

int[][] ary = new int[num][num];

for(int i = 0; i ary.length; i++){

ary[i][0] = 1;

ary[i][i] = 1;

}

for(int i = 1; i ary.length; i++){

for(int j = 1; j = i; j++){

ary[i][j] = ary[i-1][j-1] + ary[i-1][j];

}

}

return ary;

}

}

直接複製到java文件中就可以用了

Java語言楊輝三角

列印楊輝三角代碼如下:

public class woo {

public static void triangle(int n) {

int[][] array = new int[n][n];//三角形數組

for(int i=0;iarray.length;i++){

for(int j=0;j=i;j++){

if(j==0||j==i){

array[i][j]=1;

}else{

array[i][j] = array[i-1][j-1]+array[i-1][j];

}

System.out.print(array[i][j]+”\t”);

}

System.out.println();

}

}

public static void main(String args[]) {

triangle(9);

}

}

擴展資料:

楊輝三角起源於中國,在歐洲這個表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年發現這一規律的,比楊輝要遲393年。它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的優美結合。

楊輝三角具有以下性質:

1、最外層的數字始終是1;

2、第二層是自然數列;

3、第三層是三角數列;

4、角數列相鄰數字相加可得方數數列。

JAVA語言編寫楊輝三角,列印不出三角形

這個問題是因為題主使用了 println() 來列印每一個數字。println() 函數的名稱來源於 Print Line 的簡稱,從名字上就可以看出,此函數會列印出一個整行。因此 println() 函數會在要列印的字元串後自動添加一個 ‘\n’ 符號來構成一個新行。所以如果用 println() 來列印單個數字的話,每個數字在被列印出來後就會換行,這樣就導致了一行只有一個數字,所有數字列印出來後排成了一個豎條。

解決方法就是用 print() 方法來替代 println() 。print() 方法僅打出你括弧里給的字元串,不會額外添加任何東西,所以這個方法可以用來在一行里打出多個給定的字元串。 更改後的代碼如下:

public class YangHui {

    

    public static void main(String args[]) {

        

        // 先定義以一個二維數組。列比行多 1,EG:第 0 行有一個元素。

        int[][] yanghui = new int[10][];

        for (int i = 0; i  yanghui.length; i++) {

            yanghui[i] = new int[i + 1];

        }

        // 將二維數組賦值。

        for (int i = 0; i  yanghui.length; i++) {

            for (int j = 0; j  yanghui[i].length; j++) {

                yanghui[i][0] = yanghui[i][i] = 1;

                if ((i  1)  (j  0)  (j  i)) {

                    yanghui[i][j] = yanghui[i – 1][j] + 

                                    yanghui[i – 1][j – 1];

                }

            }

        }

        // 二維數組遍歷,列印每個數字。

        for (int i = 0; i  yanghui.length; i++) {

            

            for (int j = 0; j  yanghui[i].length; j++) {

                

                // 用 print() 方法列印數字

                System.out.print(yanghui[i][j]);

                

                // 列印完數字後列印一個 tab 來將數字隔開

                System.out.print(‘\t’);

            }

            // 列印完一行數字後,列印一個新行並開始輸出下一行數字。

            System.out.println();

        }

    }

}

這個程序的結果如下:

可見三角形的結構出現了。但是這個三角形並不是楊輝三角的等腰三角形,而是一個直角三角形,所以如果題主要求嚴格的楊輝三角的話,需要進行一些稍微複雜的修改。以下代碼可供參考,關於 printf() 函數的用法我在代碼注釋中稍有提及,詳細請參閱 Java 的官方文檔。

public class YangHui {

    public static void main(String args[]) {

        // 先定義以一個二維數組。列比行多 1,EG:第 0 行有一個

        // 元素。

        int[][] yanghui = new int[10][];

        for (int i = 0; i  yanghui.length; i++) {

            yanghui[i] = new int[i + 1];

        }

        // 將二維數組賦值。

        for (int i = 0; i  yanghui.length; i++) {

            for (int j = 0; j  yanghui[i].length; j++) {

                yanghui[i][0] = yanghui[i][i] = 1;

                if ((i  1)  (j  0)  (j  i)) {

                    yanghui[i][j] = yanghui[i – 1][j] + 

                                    yanghui[i – 1][j – 1];

                }

            }

        }

        // 二維數組遍歷,列印每個數字。

        for (int i = 0; i  yanghui.length; i++) {

            // 列印數字之前先根據此行數字的數量來列印相應數量的

            // 空格,這裡選擇 8 個空格的長度作為示範。

            for (int k = 0; 

                k  Math.ceil((10 – i – 1) / 2); 

                k++) {

                

                // 前面的佔位符 “%-8s” 中, – 代表這個字元串是

                // 左對齊的,8 代表這個字元串最多由 8 個字元組成,

                // s 代表這個字元串表示的類型是字元串 (String)。

                System.out.printf(“%-6s”, “”);

            }

            // 根據行數的奇偶來判斷是否列印額外半個長度(8 的一半

            // 是 4)的空格,如果沒有這一步的話,列印出的形狀不會

            // 是一個完整的等腰三角形。

            System.out.printf(i % 2 == 0 ? “%-6s” 

                                        : “%-3s”, “”);

            // 列印完前面的空格後便可列印數字了。

            for (int j = 0; j  yanghui[i].length; j++) {

                // 每個數字仍占 8 個字元的空間,這樣可以保證數字

                // 的長度整齊劃一。”%-8d” 中的 d 代表這個字元串

                // 所表示的類型是整數(Decimal)。

                System.out.printf(“%-6d”, yanghui[i][j]);

            }

            // 列印完一行數字後,列印一個新行並開始輸出下一行數字。

            System.out.println();

        }

    }

}

(上述代碼的空格長度 6 和 3 可以隨意更改,只要確保長空格長度是偶數,短空格長度是長空格的一半即可。空格越長輸出的三角形越鬆散)。

以上代碼運行的結果為

是一個完整的楊輝三角形。

java 楊輝三角

import java.util.Scanner;

public class Test {

public static void main(String args[]) {

int Line_num;

int row, col;

int yh[] = new int[20]; // 不超過20行

Scanner reader = new Scanner(System.in);

System.out.print(“請輸入行數:”);

Line_num = reader.nextInt();

yh[0] = 1;

for (row = 0; row  Line_num; row++) { // 控制輸出行數為Line_num的循環控制

for (col = row; col  0; col–){

yh[col] = yh[col – 1] + yh[col];

}

for (int i=1;iLine_num-row;i++){ // 控制輸出每行前導空格的循環控制

System.out.print(” “);

}

for (col = 0; col = row; col++) {

System.out.print(yh[col]+” “); //輸出下標為col的項的代碼

}

System.out.println(“”);

}

}

}

我的上一樓不符合樓主需求,我是符合需求的第一個,希望樓主能採納!

用JAVA編寫楊輝三角

我的絕對正確 書上抄的 還驗證過!

public static void main(String[]args){

int r=6;

int a[][]=new int[r+1][]; //表示6個一維數組組成

for(int i=0;i=r;i++){

a[i]=new int[i+1];} //表示使用for循環為一維數組指定列數

YangHui(a,r);

}

static void YangHui(int a[][],int r){

for(int i=0;i=r;i++){

for(int j=0;ja[i].length;j++){

if(i==0||j==0||j==a[i].length-1)

a[i][j]=1;

else

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

for(int i=0;i=r;i++){

for(int j=0;ja[i].length;j++){

System.out.print(a[i][j]+” “);}

System.out.println();}

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280339.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:03
下一篇 2024-12-21 13:03

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論