n
두 값 사이의 정수 제곱을 합산하는 스크립트를 어떻게 작성할 수 있습니까 ? and m
, 즉 모든 ²의 합 i
where i
from n
to 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
하스켈을 사용하면 다음과 같은 일을 할 수 있습니다:
ghc -e 'sum [i*i | i <- [3..7]]'
또는 bash 스크립트 형식으로:
#!/bin/bash
ghc -e "sum [i*i | i <- [$1..$2]]"