Shell小技巧(五十九)计算100以内偶数和(三种算法)

#!/bin/bash

#方法1,步进为2,起始位偶数2

i=2

s=0

while [ $i -le 100 ]; do

    let s=s+i

    let i=i+2

done

echo "This is fisrt ..."

echo "Total:"$s

#方法2,步进1,需要判断是偶数

echo "This is second ..."

k=1

s2=0

for((j=1;j<=100;j++));do

   k=$((j%2))

   if [ $k -eq 0 ]; then

      let s2=s2+j

   fi

done

echo "Total:"$s2

#方法3,类似高斯算法

echo "This is third ..."

s3=0

let k=100/4

let s3=(100+2)*k

echo "Total:"$s3

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,下面是使用 `while` 循环实现计算100以内所有奇数之和和偶数之和的脚本: ```bash #!/bin/bash odd_sum=0 even_sum=0 i=1 # 计算所有奇数之和 while [ $i -le 100 ] do odd_sum=$((odd_sum+i)) i=$((i+2)) done # 重置i的值,计算所有偶数之和 i=2 while [ $i -le 100 ] do even_sum=$((even_sum+i)) i=$((i+2)) done echo "100以内所有奇数之和为:$odd_sum" echo "100以内所有偶数之和为:$even_sum" ``` 同样地,我们使用了两个 `while` 循环,第一个循环计算所有奇数之和,第二个循环计算所有偶数之和。每个循环中,我们使用 `$i` 来表示当前的数,通过 `$((i+2))` 来更新 `$i` 的值,进而实现循环计算。 ### 回答2: 可以使用Shell脚本中的while循环将100以内的奇数和偶数和。具体步骤如下所示: ```bash #!/bin/bash i=0 odd_sum=0 even_sum=0 while [ $i -le 100 ] do if [ $((i%2)) -eq 0 ] # 判断当前数是否为偶数 then even_sum=$((even_sum+i)) # 将当前数累加到偶数和中 else odd_sum=$((odd_sum+i)) # 将当前数累加到奇数和中 fi i=$((i+1)) done echo "100以内的奇数之和为:$odd_sum" echo "100以内偶数之和为:$even_sum" ``` 上述脚本中,我们使用变量`i`来依次遍历0到100之间的数。通过`$((i%2))`的方式判断当前数是否为偶数,如果余数为0,则当前数为偶数,否则为奇数。然后,我们将当前数累加到相应的奇数和或偶数和变量中。最后,使用`echo`命令输出结果。 运行以上脚本,将计算100以内的奇数之和和偶数之和。 ### 回答3: 可以使用Shell脚本中的while循环来计算100以内的奇数之和和偶数之和。下面是一个示例脚本: ```shell #!/bin/bash # 初始化奇数之和和偶数之和变量 sum_odd=0 sum_even=0 # 初始化计数器 num=1 while [ $num -le 100 ] do # 判断数字是否是奇数 if [ $((num % 2)) -eq 1 ] then # 如果是奇数,将其加到奇数之和上 sum_odd=$((sum_odd + num)) else # 如果是偶数,将其加到偶数之和上 sum_even=$((sum_even + num)) fi # 增加计数器 num=$((num + 1)) done # 输出结果 echo "100以内的奇数之和为:$sum_odd" echo "100以内偶数之和为:$sum_even" ``` 这个脚本先通过初始化变量设置奇数之和和偶数之和为0,并设置一个计数器为1。然后进行while循环,循环条件是计数器小于等于100。在循环体内,首先判断当前数字是否是奇数,判断的方法是通过判断数字对2取余是否等于1。如果数字是奇数,则将其加到奇数之和上;如果数字是偶数,则将其加到偶数之和上。最后,每次循环结束后将计数器增加1。循环结束后,通过echo语句输出奇数之和和偶数之和的结果。 运行这个脚本,将会得到100以内的奇数之和和偶数之和的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值