学不会编程的小男孩
2016-12-06 10:28
采纳率: 90.9%
浏览 940
已采纳

打印图形,求各位大神帮忙

                     1
                                  2     1  2
                         3   2   1  2  3
            4   3   2   1  2  3   4
     5   4    3   2   1  2  3   4   5

6 5 4 3 2 1 2 3 4 5 6

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • yangqinghua1992 2016-12-07 01:24
    已采纳
     int n = 6;
    
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < n - i; j++) {
            System.out.print("  "); // 打印空格
        }
    
        for (int k = -i; k <= i; k++) {
            if (k == 0 || k == 1) {
                continue;
            }
    
            System.out.print(" " + Math.abs(k)); // 打印数字
        }
        System.out.println();
    }
    

    图片说明

    点赞 打赏 评论
  • 当作看不见 2016-12-06 11:27
    
        public class test{
           public static void main(String[] args){
           print(5);
         }
         public static void print(int n){
             n+=1;
             int temp;
             for(int i=1;i<n;i++){
    
                 temp=i;
                 for(int j=temp;j>=1;j--){
                     System.out.print(j);
                 }
                 for(int k=2;k<=temp;k++){
                     System.out.print(k);
                 }
                 System.out.println("");
             }
         }
    }
    
    点赞 打赏 评论
  • wyg_blog 2016-12-06 11:44

    把楼上回答稍微改了一下。使输出成为了一个正三角形。
    public static void print(int n){
    n+=1;
    int temp;
    for(int i=1;i temp=i;
    for (int m = 0; m System.out.print(" ");
    }
    for(int j=temp;j>=1;j--){
    System.out.print(j);
    }
    for(int k=2;k<=temp;k++){
    System.out.print(k);
    }
    System.out.println("");
    }
    }
    public static void main(String[] args) {
    print(6);
    }

    
    
    点赞 打赏 评论
  • yangqinghua1992 2016-12-07 01:38

    第二种方案

    int min = 1;
    int max = 6;
    
    for (int i = 0; i < min; i++) {
        for (int j = 0; j < max - min; j++) {
            System.out.print("  "); // 打印缩进
        }
    
        for (int j = -min; j < -1; j++) {
            System.out.print(Math.abs(j) + " "); // 打印左边的数字
        }
    
        System.out.print(1 + " "); // 打印中间的 1
    
        for (int j = 2; j <= min; j++) {
            System.out.print(Math.abs(j) + " "); // 打印右边的数字
        }
    
        System.out.println(); // 换行
        if (min < max)
            min++; // 更新
    }
    

    图片说明

    点赞 打赏 评论

相关推荐 更多相似问题