배열을 읽고 합계를 냅니다.

배열을 읽고 합계를 냅니다.

#! /bin/bash사용했지만 여기서는 생략했습니다. 저는 bash 쉘만 사용했습니다. 첫 번째 정수는 배열의 변수 수입니다. 예, 구문 오류가 발생합니다.

배열과 배열 요소의 합계를 읽어야 합니다. 크기가 N인 정수 배열이 주어졌습니다. 배열에 있는 요소의 합을 인쇄해야 합니다. 이러한 정수 중 일부는 매우 클 수 있다는 점을 기억하세요.

입력 형식:

입력의 첫 번째 줄에는 정수 N이 포함됩니다. 다음 줄에는 배열에 포함된 공백으로 구분된 정수가 포함됩니다(1<=N<=10, 0<=A[i]<=10000000000).

5
1000000001 1000000002 1000000003 1000000004 1000000005

출력 형식:

배열의 요소 합계와 동일한 값을 인쇄합니다.

5000000015

지금까지 내가 한 일:

암호:

#input array size
read N
while [ $N -ge 1 -a $N -le 10 ]
do
echo $N
break
done
for i in `seq 0 N-1`;
do 
read -a array[i]
if[ "${array[i]}" -ge 0 -a "${array[i]}" -le 10000000000 ]; then
echo "${array[i]}"
fi
done
#sum=expr `sum + ${ array[i] }`

구문 오류: 연산자가 필요합니다.

내가 어디에서 잘못되고 있는지 알려주실 수 있나요?

답변1

Bash에서 작업하는 경우 인덱스를 사용할 필요가 없습니다.

#!/bin/bash
read N 
read -a A
for elem in "${A[@]::N}"; do
    ((ar_sum+=$elem))
done
echo $ar_sum

for 루프는 다음과 같이 교환될 수 있습니다.

expr $(printf '%b + ' "${A[@]::N}"\\c)

관련 정보