當前位置:首頁 » 編程語言 » java楊輝三角

java楊輝三角

發布時間: 2022-08-25 09:20:41

『壹』 java編寫楊輝三角~~~

  • 楊輝三角線的推理:

楊輝三角形性質:


每行數字左右對稱,由 1 開始逐漸變大,然後變小,回到 1。


第 n 行的數字個數為 n 個。


第 n 行數字和為 2^(n-1) 。


每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角形。


第 n 行的第 1 個數為 1,第二個數為 1× (n-1) ,第三個數為 1× (n-1) × ( n-2) /2,第四個數為1× (n-1) × (n-2) /2× (n-3) /3…依此類推。

使用一個二維數組 yh[][] 存儲楊輝三角形的數據,行和列的大小為所需要輸出的行數 Row(本程序中 Row 為 10)。


使用 for 循環使楊輝三角中除了最外層(不包括楊輝三角底邊)的數為 1 ;


使用語句 yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j] 使第 i 行第 j 列的數據等於第(i-1) 行


第(j-1)列的數據與第(i-1)行第(j)列的數據之和,即每個數字等於上一行的左右兩個數字之和。

  • 代碼的實現

  • packagecom.practice;

    publicclassYangHuiSanJiao
    {
    publicstaticvoidmain(String[]args){
    int[][]a=newint[10][10];
    for(intn=0;n<10;n++)
    {
    a[n][0]=1;
    a[n][n]=1;
    }
    for(intn=2;n<10;n++)
    {
    for(intj=1;j<n;j++)
    {
    a[n][j]=a[n-1][j-1]+a[n-1][j];
    }
    }

    for(intn=0;n<10;n++)
    {
    for(intk=0;k<2*(10-n)-1;k++)
    {
    System.out.print("");
    }
    for(intj=0;j<=n;j++)
    {
    System.out.print(a[n][j]+"");
    }
    System.out.println();
    }

    }
    }

『貳』 楊輝三角java源代碼

//列印等腰楊輝三角形
publicclassYHTriangle
{
publicstaticvoidmain(String[]args)
{
//定義二維數組的長度
intlength=10;
//聲明二維數組
int[][]arr=newint[length][];
//遍歷二維數組
for(inti=0;i<arr.length;i++){
//列印空格
for(intm=0;m<arr.length-1-i;m++){
System.out.print("");
}
//給每個二維數據的元素賦值一維數組
arr[i]=newint[i+1];
//遍歷一維數組
for(intj=0;j<arr[i].length;j++){
//第一個元素和最後一個元素的值都是1
if(j==0||j==arr[i].length-1){
arr[i][j]=1;
}else{
//當前一維數組的索引n元素的值,等於前一個數組索引n-1,加上索引n的值
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
//格式化輸出元素值
System.out.printf("%4d",arr[i][j]);
}
//換行
System.out.println();
}
}
}

『叄』 用java編程楊輝三角的代碼

1.楊輝三角形由數字排列,可以把它看做一個數字表,其基本特性是兩側數值均為1,其他位置的數值是其正上方的數字與左上角數值之和,下面是java使用for循環輸出包括10行在內的楊輝三角形

2.思路是創建一個整型二維數組,包含10個一維數組。使用雙層循環,在外層循環中初始化每一個第二層數組的大小。在內層循環中,先將兩側的數組元素賦值為1,其他數值通過公式計算,然後輸出數組元素。
代碼如下:
public class YanghuiTriangle {
public static void main(String[] args) {
int triangle[][]=new int[10][];// 創建二維數組
// 遍歷二維數組的第一層
for (int i = 0; i < triangle.length; i++) {
triangle[i]=new int[i+1];// 初始化第二層數組的大小
// 遍歷第二層數組
for(int j=0;j<=i;j++){
// 將兩側的數組元素賦值為1
if(i==0||j==0||j==i){
triangle[i][j]=1;
}else{// 其他數值通過公式計算
triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];
}
System.out.print(triangle[i][j]+"\t"); // 輸出數組元素
}
System.out.println(); //換行
}
}
}

『肆』 java實現楊輝三角

class 楊輝三角{
public static void main(String[]args){
int a[][]=new int[5][5];
for (int i=0;i<a.length ;i++ )
{
for (int j=0;j<a[i].length ;j++ )
{
if (j==0||i==j)
{
a[i][j]=1;
}
else{
if (i>j)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
}
for (int i=0;i<a.length ;i++ )
{
for (int j=0;j<a[i].length ;j++ )
{
if (i>=j)
{
System.out.print(a[i][j]+"\t");
}
}
System.out.println();
}
}
}

////////////////////////////////////////////////////@希望能幫到你@///////////////////////////////////

『伍』 Java-楊輝三角

給你寫了一個方法來做,不過沒完全按照你的代碼寫,你可以看看我的方法,然後如果一定要套你的代碼的話,你稍微改一改應該就可以了,代碼如下:

publicstaticvoidtriangle(intn){
int[]row=newint[2*n-1];
row[n-1]=1;
for(inti=0;i<n;i++){
printArray(row);
row=helperArray(row);
}
}
publicstaticint[]helperArray(int[]arr){
intmiddle=(arr.length-1)/2;
int[]result=newint[arr.length];
if(arr[middle]!=0){//中間位不為0時,下一層只有奇數位有值
for(inti=0;i<=(middle-1)/2;i++){
if(middle-2*(i+1)<0)
result[middle-(2*i+1)]=arr[middle-2*i];
else
result[middle-(2*i+1)]=arr[middle-2*i]+arr[middle-2*(i+1)];
result[middle+(2*i+1)]=result[middle-(2*i+1)];
}
}elseif(arr[middle]==0){//中間位為0時,下一層只有偶數位有值
for(intj=0;j<=middle/2;j++){
if(middle-2*j-1<0)
result[middle-2*j]=arr[middle-2*j+1];
else
result[middle-2*j]=arr[middle-2*j-1]+arr[middle-2*j+1];
result[middle+2*j]=result[middle-2*j];
}
}
returnresult;
}
publicstaticvoidprintArray(int[]arr){
for(inta:arr){
if(a==0)
System.out.print("");
else
System.out.print(a);
}
System.out.println();
}

publicstaticvoidmain(String[]args){
triangle(11);//測試層數為11時的楊輝三角
}


有問題再追問。

『陸』 楊輝三角java 原理

publicstaticvoidmain(String[]args){
int[][]a=newint[10][10];//申明數組默認初始化值都為0a[i][j]代表第i+1行第j+1個數
for(inti=0;i<10;i++){//賦值三角形兩邊界恆為1
a[i][i]=1;
a[i][0]=1;
}
//按照楊輝三角定義求值
for(inti=2;i<10;i++){//行數循環從第三行開始,因為第一行與第二行已賦值為1
for(intj=1;j<i;j++){//行內循環每一行數除兩邊還要計算的數字總數=所在行數-2=i+1-2=i-1
a[i][j]=a[i-1][j-1]+a[i-1][j];//第i+1行第j+1個數=第i行第j個數+第i行第j+1個數
}
}
//輸出楊輝三角
for(inti=0;i<10;i++){//行循環
for(intk=0;k<2*(10-i)-1;k++){//行內循環每多一行,1之前的空格數減2
System.out.print("");//輸出每行開始時的空格
}
for(intj=0;j<=i;j++){//輸出第i+1行的數字
System.out.print(a[i][j]+"");
}
System.out.println();
}
}}

熱點內容
linux伺服器網站 發布:2025-01-17 23:14:45 瀏覽:785
sql幾點 發布:2025-01-17 23:08:42 瀏覽:350
扣扣密碼是多少 發布:2025-01-17 23:02:57 瀏覽:646
易柚和安卓手機哪個好 發布:2025-01-17 23:02:14 瀏覽:583
linux切換root用戶 發布:2025-01-17 22:50:27 瀏覽:534
速賣通演算法 發布:2025-01-17 22:42:12 瀏覽:444
編譯中標題翻譯的特點 發布:2025-01-17 22:42:07 瀏覽:439
oppok7x激活密碼是多少 發布:2025-01-17 22:41:02 瀏覽:222
按鍵精靈腳本自動交易分解 發布:2025-01-17 22:30:33 瀏覽:14
如何恢復安卓60 發布:2025-01-17 22:27:07 瀏覽:439