Linux中shell编程,输出任何数的和

编写一个shell脚本sum,求前n个奇数之和。数字n可变 求大神
2024年12月03日 06:51
有2个网友回答
网友(1):

我是这么理解楼上提问题的意思:求前n个奇数之和,数字n可变。比如n=5,则5前面的奇数为1和3并求和为4。如果n=9,则9前面的奇数为1,3,5,7并求和为16。不知道我理解的对不?如果是这样的,那么如下所示:


代码:

#!/bin/bash

sum=0

k=0

while [ $((2*$k+1)) -lt $1 ]

do

        echo $((2*$k+1))

        sum=$((2*$k+1+$sum))

        k=$(($k+1))

done

echo "sum: $sum"

网友(2):

下面有输出测试的奇数,不要输出可以删除掉就行了:

#!/bin/bash

sum=0
n=$1

for ((i = 0; i < n; ++i))
do
    # 测试输出这几个奇数
    echo $((2 * i + 1))
    ((sum += 2 * i + 1))
done

echo "Sun: $sum"

 

保存成 sum.sh

调用的时候用参数传入 n,比如 bash sum.sh 4 就可以算前四的数,简单起见没有对参数做有效性的判断。