如何以三角形形式打印2的幂?

如何以三角形形式打印2的幂?

我正在尝试打印以下内容: 2 三角形的幂

但我没有得到结果。我尝试了以下方法:

for (( i=1; i<=5; i++ ))
do
    for (( j=1; j<=i;  j++ ))
    do
     echo -n "$((j**2))"
    done
    echo ""
done

答案1

你有几个问题:

  • 你打印的是 j 的平方,而不是 2 的 j 次方;
  • 不存在等于 0 的 2 的幂;
  • 你需要打印一个空格来分隔数字;
  • 循环中的初始值不应该是 1,而是 0 以打印 2**0 以确保完整性

因此

for (( i=0; i<=5; i++ ))
do
    for (( j=0; j<=i;  j++ ))
    do
     echo -n "$((2 ** j)) "
    done
    echo ""
done

产生

1 
1 2 
1 2 4 
1 2 4 8 
1 2 4 8 16 
1 2 4 8 16 32

相关内容