哪位高手能帮我解决一下如何用java打印出等腰的杨辉三角?

解决方案 »

  1.   

    #include<stdio.h>
    void main()
    {
    int a[10][10];
    int i,j;
    for(i=0;i<10;i++)
    {
    for(j=0;j<=i;j++)
    {
    if(j==0)//第一列
    {
    a[i][0]=1;
    printf("%d\t",a[i][0]);
    }
    else if(j==i)//最后一列
    {
    a[i][j]=1;
    printf("%d\t",a[i][j]);
    }
    else
    {
    a[i][j]=a[i-1][j-1]+a[i-1][j];
    printf("%d\t",a[i][j]);
    }
    }
    printf("\n");
    }
    }
    这是用c做的,用java小修改就ok了!
      

  2.   

    import java.io.*; 
    class YangHuiSJ 

    public static void main(String[] args) throws Exception 

    int n; 
    int i; 
    int j; 
    System.out.println("杨辉三角 v1.0 mao1030"); 
    System.out.println("*******************************************"); 
    System.out.println("请输入要显示多少行:(1-15)"); 
    BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); 
    n=Integer.parseInt(stdin.readLine()); 
    if(n<=15&&n>=1){ 
    int[][] YH=new int[n][]; 
    System.out.println("你输入的是"+n+"行"); 
    for(i=0;i<n;i++) 

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

    for(i=0;i<n;i++) 

    YH[i][0]=1; 
    YH[i][i]=1; 

    for(i=2;i<n;i++){ 
    for(j=1;j<i;j++){ 
    YH[i][j]=YH[i-1][j-1]+YH[i-1][j];} 
    } for (i=0;i<n;i++){ 
    for(j=0;j<=i;j++){ 
    System.out.print(YH[i][j]); 
    if(YH[i][j]<10) System.out.print(" "); 
    else if(YH[i][j]<100) System.out.print(" "); 
    else if(YH[i][j]<1000) System.out.print(" "); 
    else System.out.print(" "); 

    System.out.println(); 
    } System.out.println("*******************************************"); 
    System.out.println("杨辉三角 v1.0 mao1030"); 

    else 
    System.out.println("输入数据错误"); 
    System.out.println("*******************************************"); 
    System.out.println("杨辉三角 v1.0 mao1030"); 


      

  3.   

    下面是输出杨辉三角行的前6行
    public class YangHui {
    public static void main(String[] args) {
            int[][] a=new int[6][];
            for(int i=0;i<6;i++){
             a[i]=new int[i+1];
            }
            for(int i=0;i<6;i++){
             a[i][0]=1;
             a[i][i]=1;
            }
            for(int i=0;i<6;i++){
             for(int j=0;j<i;j++){
             if(a[i][j]!=1)
             a[i][j]=a[i-1][j-1]+a[i-1][j];
             System.out.print(a[i][j]+"");
             }
             System.out.println("");
            }
    }}
      

  4.   


    public class SanJiao {
    public static void main(String[] args) {
    int i,j;
      int a[][]=new int[10][10];//声明一个10行10列的二维数组
      System.out.print("杨辉三角\n");
      
      for(i=0;i<10;i++)//通过循环给这个数组的每一行的第一个元素和最后一个元素赋值为1
      {
       a[i][0]=1;
       a[i][i]=1;
      }
      //从第三行开始给每一行从第二个元素开始赋值
      for(i=2;i<10;i++)
      {
       for(j=1;j<i;j++)
       {
        //赋值为上一行的前一个位置和这个位置上的值得和
        a[i][j]=a[i-1][j-1]+a[i-1][j];
       }
      }
      //输出每一行的元素值
      for(i=0;i<10;i++)
      {//行代表一级数组
       for(j=0;j<=i;j++)
       {//列代表二级数组
        System.out.print(a[i][j]);
       }
       System.out.println();
      } }}路过..
      

  5.   

    不好意思啊..没看到是等腰的.再补充下:package math;
    import java.io.*;
    public class San { /**
     * @param args
     */
    public static void main(String[] args) {
     try
            {
            System.out.print("请输入杨辉三角的规模:");
                BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
                int n=Integer.parseInt(stdin.readLine()); 
                int a[][]=new int[n][]; 
                int i,j;
                for(i=0;i<n;i++) 
                { 
                    a[i]=new int[i+1]; 
                    for(j=0;j<i+1;j++) 
                    { 
                        if(j==0||j==i)
                         a[i][j]=1; 
                        else 
                            a[i][j]=a[i-1][j-1]+a[i-1][j]; 
                    } 
               } 
               System.out.println("行杨辉三角为:");
               for (i=0;i<n;i++) 
               { 
                   for(j=0;j<n-i;j++) 
                   System.out.print("  "); 
                   for(j=0;j<i+1;j++) 
                   System.out.print(a[i][j]+"   "); 
                   System.out.print("\n"); 
              }
            
          }
         catch(IOException e)
          {
           System.err.println("IOException");
          } }}请输入杨辉三角的规模:8
    行杨辉三角为:
                    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  
      

  6.   


    import java.util.*;
    public class Exeone {
     public static void main(String[] args) 
     {
      int i,j;
      int a[][]=new int[10][10];//声明一个10行10列的二维数组
      System.out.print("杨辉三角\n");
      
      for(i=0;i<10;i++)//通过循环给这个数组的每一行的第一个元素和最后一个元素赋值为1
      {
       a[i][0]=1;
       a[i][i]=1;
      }
      //从第三行开始给每一行从第二个元素开始赋值
      for(i=2;i<10;i++)
      {
       for(j=1;j<i;j++)
       {
        //赋值为上一行的前一个位置和这个位置上的值得和
        a[i][j]=a[i-1][j-1]+a[i-1][j];
       }
      }
      //输出每一行的元素值
      for(i=0;i<10;i++)
      {//行代表一级数组
       for(j=0;j<=i;j++)
       {//列代表二级数组
        System.out.print(a[i][j]);
       }
       System.out.println();
      }
     }}