如何根据输入n,打印n+1层的半边金字塔?

新手上路,请多包涵

求解

例如输入3, 那么打印结果为:

0
0-1
0-1-2
0-1-2-3

阅读 1.7k
3 个回答

使用lastStr记录上次打印的字符串,然后拼接本次循环的数字即可。

 public static void main(String[] args) {
        int count =3;
        String lastStr = null;
        for (int i = 0; i <=count; i++) {
            if (i == 0) {
                lastStr = String.valueOf(i);
                System.out.println(i);
            }else {
                lastStr = lastStr + "-" + i;
                System.out.println(lastStr);
            }
        }
    }

int len = 3
string str = "";
for (int i = 0 ;i<= len ;i++){

for (int j = 0 ;j <= i ; j++  ){
    if(j == 0){
      str = j;
     }else{
      str += "-"+j;
     }
    system.out.println("-");
}

}

我是用JS写的, 但本质是都一样主要是算法思想, 里面的关键字定义为java的就行了:
let 改为int, var改为string, console.log(result)是打印, 改为java里面的打印就行了
第一层循环是金字塔的每一层, 第二层循环是每层的内容

  let n = 4
  var str = ''
  var result = ''
  for (let i = 0; i <= n; i++) {
    str = ''
    for (let j = 0; j < i + 1; j++) {
      if (j == 0) {
        str = str + j
      } else {
        str = str + '-' + j
      }

    }
    result = str + '\n'
    console.log(result);
  }
推荐问题
宣传栏