Java 帕斯卡';s三角定位

Java 帕斯卡';s三角定位,java,arrays,multidimensional-array,pascals-triangle,Java,Arrays,Multidimensional Array,Pascals Triangle,我制作了一个Java程序,可以打印出一个pascal三角形,但是我不知道如何正确定位它 计划1 公共类三角形{ 公共静态void main(){ System.out.println(“\n链接:”); int行=11; 长[][]三角形=新的长[行][行]; 三角形[1][1]=1; 系统输出打印(三角形[1][1]+“\n”); 对于(int i=2;i

我制作了一个Java程序,可以打印出一个pascal三角形,但是我不知道如何正确定位它

计划1

公共类三角形{
公共静态void main(){
System.out.println(“\n链接:”);
int行=11;
长[][]三角形=新的长[行][行];
三角形[1][1]=1;
系统输出打印(三角形[1][1]+“\n”);
对于(int i=2;i0){
系统输出打印(三角形[i][n]+“”);
}
}
System.out.println();
}
}
}
输出:

1
1 1 
1 2 1 
1 3 3 1 
     1
    1 1 
   1 2 1 
  1 3 3 1 
 1 4 6 4 1 
1 5 10 10 5 1 //(Notice this line is incorrectly positioned)
             0  
            0  1  
           0  1  1  
          0  1  1  2  
         0  1  1  2  3  
        0  1  1  2  3  5  
       0  1  1  2  3  5  8  
      0  1  1  2  3  5  8  13  
     0  1  1  2  3  5  8  13  21  
    0  1  1  2  3  5  8  13  21  34  
   0  1  1  2  3  5  8  13  21  34  55  
  0  1  1  2  3  5  8  13  21  34  55  89  
 0  1  1  2  3  5  8  13  21  34  55  89  144  
0  1  1  2  3  5  8  13  21  34  55  89  144  233  
计划2

公共类三角形{
公共静态void main(){
System.out.println(“\n链接:”);
int行=11;
长[][]三角形=新的长[行][行];
int x=1;
而(x<第1行){
系统输出打印(“”);
x++;
}
三角形[1][1]=1;
系统输出打印(三角形[1][1]+“\n”);
对于(int i=2;i0){
系统输出打印(三角形[i][n]+“”);
}
}
System.out.println();
}
}
}
输出:

1
1 1 
1 2 1 
1 3 3 1 
     1
    1 1 
   1 2 1 
  1 3 3 1 
 1 4 6 4 1 
1 5 10 10 5 1 //(Notice this line is incorrectly positioned)
             0  
            0  1  
           0  1  1  
          0  1  1  2  
         0  1  1  2  3  
        0  1  1  2  3  5  
       0  1  1  2  3  5  8  
      0  1  1  2  3  5  8  13  
     0  1  1  2  3  5  8  13  21  
    0  1  1  2  3  5  8  13  21  34  
   0  1  1  2  3  5  8  13  21  34  55  
  0  1  1  2  3  5  8  13  21  34  55  89  
 0  1  1  2  3  5  8  13  21  34  55  89  144  
0  1  1  2  3  5  8  13  21  34  55  89  144  233  
当三角形接近多个数字时,它开始分解,使其变得丑陋。有人能解释一下我如何显示一个普通三角形而不是这个丑陋的三角形吗?

/**
*@作者Ranjith
*/
公共类JavaApplication2{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
int i;
int x;
int n=15;//行数
字符串newLine=System.getProperty(“line.separator”);
对于(i=0;i
输出:

1
1 1 
1 2 1 
1 3 3 1 
     1
    1 1 
   1 2 1 
  1 3 3 1 
 1 4 6 4 1 
1 5 10 10 5 1 //(Notice this line is incorrectly positioned)
             0  
            0  1  
           0  1  1  
          0  1  1  2  
         0  1  1  2  3  
        0  1  1  2  3  5  
       0  1  1  2  3  5  8  
      0  1  1  2  3  5  8  13  
     0  1  1  2  3  5  8  13  21  
    0  1  1  2  3  5  8  13  21  34  
   0  1  1  2  3  5  8  13  21  34  55  
  0  1  1  2  3  5  8  13  21  34  55  89  
 0  1  1  2  3  5  8  13  21  34  55  89  144  
0  1  1  2  3  5  8  13  21  34  55  89  144  233  

动态Pascal三角形生成器位于此处:

import java.io.IOException;
导入java.util.Scanner;
公共班机{
静态双事实(int n){
双结果=1;
for(双i=1;i=0;空格--){
System.out.printf(“”);
}
对于(intj=0;j试试这个

结果:

1  
1  1  
1  2  1  
1  3  3  1  
1  4  6  4  1  
1  5  10  10  5  1  
1  6  15  20  15  6  1  
1  7  21  35  35  21  7  1 
import java.util.*;
公共类HelloWorld{
静态int binCoeff(int n,int k){
int res=1;
如果(k>n-k)
k=n-k;
对于(int i=0;iclass pascal{
静态真空干管(int n){
整数a[][]=新整数[n][n+1];
对于(int i=0;i0;p--){
系统输出打印(“”);
}
对于(int j=0;j
您可以将此类三角形表示为二维数组,其中第一行和第列的元素等于一,而所有其他元素都是该行和第列中前一个元素的总和

arr[i][j] = arr[i][j-1] + arr[i-1][j];
然后可以将其放置在左上角,如下所示:

 1  1  1  1  1  1  1  1  1 
 1  2  3  4  5  6  7  8 
 1  3  6 10 15 21 28 
 1  4 10 20 35 56 
 1  5 15 35 70 
 1  6 21 56 
 1  7 28 
 1  8 
 1 

publicstaticvoidmain(字符串[]args){
int n=9;
//“n”行的数组
int[]arr=新int[n][];
//迭代数组中的行
对于(int i=0;i

另见:


这是否回答了您的问题?