如何编写一个脚本来对两个值n
和之间的整数平方求和m
,即所有 ² 的总和i
,其中i
从n
到m
?
答案1
一种方法是:
#! /bin/sh
n=$1
m=$2
# Reference: http://math.stackexchange.com/q/48080
sum=$(( (m * (m + 1) * (2 * m + 1) - (n - 1) * n * (2 * n - 1)) / 6 ))
echo $sum
结果:
./sum 3 7
135
答案2
相当基本的方法:
#!/bin/bash
sum=0 # initialise sum to zero
for i in $(seq $1 $2); do # iterate from n to m
sum=$((sum + i * i)) # add i² to sum
done
echo $sum # print sum
称呼:
./sum.sh n m
不过还有其他方法可以编写循环,看看这里。
答案3
使用 Haskell,我们可以:
ghc -e 'sum [i*i | i <- [3..7]]'
或者以 bash 脚本格式:
#!/bin/bash
ghc -e "sum [i*i | i <- [$1..$2]]"