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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题