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

いくつかの質問があります:

  • 印刷する内容は2のj平方ではなくj平方です。
  • 0のような2の重なりはありません。
  • 数字を区切るには、スペースを印刷する必要があります。
  • 完全性のために2**0を印刷するには、ループの初期値は1ではなく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

関連情報