nelson94 2017-06-10 15:51 采纳率: 100%
浏览 1019
已采纳

java循环打印三角形基础题,麻烦帮我看看我的代码有什么问题,为什么跑不了

图片说明package book;
import java.util.Scanner;
public class Test5_19 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    System.out.println("enter the number of line");
    int numberOfLine = in.nextInt();

    for(int rows=1;rows<=numberOfLine;rows++){
        for(int space=numberOfLine-rows;space>=1;space++){
            System.out.print("  ");
        }
        for(int i=0;i<=numberOfLine-1;i++){
            int a = (int)(Math.pow(2, i));
            System.out.print(a+"  ");
        }
        for(int j=numberOfLine-1;j>=0;j--){
            int b = (int)(Math.pow(2, j));
            System.out.print(b+"  ");
        }
        System.out.println();
    }

}

}

  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-06-11 00:54
    关注
     for(int space=numberOfLine-rows;space>=1;space++){ //初值为8,退出条件为小于1,但space一直在++,所以死循环
    

    修改后的代码如下:

    import java.util.Scanner;
    
    public class Test5_19 {
    
        public static void main(String[] args) {
    
            Scanner in = new Scanner(System.in);
            System.out.println("enter the number of line");
            int numberOfLine = in.nextInt();
    
            for (int row = 0; row < numberOfLine; row++) {
    
                for (int space = 0; space < (numberOfLine - row - 1); space++)
                    System.out.print("     ");
    
    
                for (int column = 0; column <= row; column++)
                    print_val((int) Math.pow(2, column));
    
    
                for (int column = row - 1; column >= 0; column--)
                    print_val((int) Math.pow(2, column));
    
    
                System.out.println();
            }
    
        }
    
        static void print_val(int n1) {  //不同位数打印不同空格
            if (n1 > 0 && n1 < 10)
    
                System.out.print("    ");
            else if (n1 > 9 && n1 < 100)
    
                System.out.print("   ");
            else
                // Print 2 spaces for other values
                System.out.print("  ");
    
    
            System.out.print(n1);
    
        }
    }
    

    考虑了输出格式,时间关系,没有加太多注释,您可以上机测试一下。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 Docker容器里已经安装了ssh,但打包迁移到新机器一直容器一直提示unrecognized service。
  • ¥15 综合布线实例设计,就好看好看不恐怖可好滤镜好聚
  • ¥15 使用moviepy库视频合并时出错
  • ¥30 FLUENT液固传质UDF
  • ¥15 怎么看梯度直方图以,怎么判断梯度消失/爆炸,怎么解决
  • ¥15 aspnetdll文件访问拒绝
  • ¥15 wpf中在模版中寻找元素
  • ¥15 MFC平台生成指定圆
  • ¥15 jmeter出现403
  • ¥500 求华为P30PRO手机硬盘数据恢复