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 ensp如何拼通IP地址
  • ¥15 saber软件导入Ibis模型报错
  • ¥15 商城生产日期批次库存问题
  • ¥15 esp8266控制共阳极wrgb灯板无法关闭所有led灯
  • ¥100 python读取速度问题
  • ¥15 stm32f407使用DMA问题
  • ¥15 您好 这个API接口该怎么弄 网站搭建好了 API也有 现在就不知道该怎么填写API 不知道怎么用
  • ¥88 用uniapp写一个多端的程序,用到高德地图,用高德的JSAPI吗?
  • ¥20 关于#c++#的问题:水果店管理系统
  • ¥30 dbLinq最新版linq sqlite