答案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