A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析:           1        1 1      1 2 1    1 3 3 1  1 4 6 4 11 5 10 10 5 1*/public class Test {

    public static void main(String[] args){
     
     int n = 10;
     int[] last = new int[n];
     for (int i = 0; i < n; ++i)
      last[i] = 1;
     int[] current = last.clone();
     System.out.print("1\n1 1\n");
     
     for (int i = 3; i <= n; ++i) {
      for (int j = 1; j < i - 1; ++j) {
       current[j] = last[j] + last[j - 1];
      }
      print(current, i);
      
      int[] t = current;
      current = last;
      last = t;
     }
     
    }
   
    static void print(int[] array, int n) {
     for (int i = 0; i < n; ++i)
      System.out.print(array[i] + " ");
     System.out.println();
    }

}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

4 个回复

倒序浏览
本帖最后由 qw无语 于 2013-11-17 20:06 编辑

修改一下,不然只支持10
回复 使用道具 举报
public class Test {

        public static void main(String[] args) {

                int n = 10;
                int[] last = new int[n];
                for (int i = 0; i < n; ++i)
                        last[i] = 1;
                int[] current = last.clone();
                for (int i = 1; i <= n; ++i) {
                        for (int j = 1; j < i - 1; ++j) {
                                current[j] = last[j] + last[j - 1];
                        }
                        print(current, i , n);

                        int[] t = current;
                        current = last;
                        last = t;
                }

        }

        static void print(int[] array, int n ,int x) {       
                //打印空格
                if(n%2==1)System.out.print("   ");
                int y=x+(x+1)%2;
                for (int i = n; i < y; i=i+2) {
                        System.out.print("      ");       
                }
                                  //打印图形,无改动
                for (int i = 0; i < n; ++i){
                        System.out.print(aaa(array[i]));               
                }
                System.out.println();       
        }
        //打印数字和数字后面空格
        static String aaa(int x)
        {
                String str=Integer.toString(x);
                for (int i = str.length(); i < 6 ; i++) {
                        str=str+" ";
                }
                return str;
        }
}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. public class YangHui {
  2.         public static void main(String[] args) {
  3.                 Scanner sc = new Scanner(System.in);
  4.                 int n = sc.nextInt();
  5.                 int[][] a = new int[n][n];
  6.                 for(int i = 0; i<a.length; i++){
  7.                         //设置两边
  8.                         a[i][0] = 1; a[i][i] = 1;
  9.                         if (i == 0) continue;
  10.                         for(int j = 1; j<i;j++){
  11.                                 a[i][j] = a[i-1][j-1] + a[i-1][j];
  12.                         }
  13.                 }
  14.                
  15.                 //输出
  16.                 for(int i = 0; i<a.length; i++){
  17.                         for(int j = 0; j<=i; j++){
  18.                                 System.out.print(a[i][j] + "\t");
  19.                         }
  20.                         System.out.println();
  21.                 }
  22.         }
  23. }
复制代码
希望对lz有帮助

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
帖子已分类,若仍有疑惑,可重新提问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马