問題
整数 N が与えられます。続く N 行それぞれに整数 A_i が与えられます。
A_1 + A_2 + ... + A_N の合計を出力してください。
入力形式
N
A_1
A_2
...
A_N
制約
$1 \le N \le 100$
$-1000 \le A_i \le 1000$
全て整数
入出力例
入力例 1
3
10
20
30出力例 1
60入力例 2
5
1
-3
5
-2
4出力例 2
5ヒント (段階的開示)
ヒント1: 方向性
1行ずつ
N 回繰り返して入力を受け取る必要があります。「繰り返し」を使いましょう。ヒント2: アプローチ
for _ in range(N): でループし、各反復で int(input()) を読み込んで合計に加算していきます。ヒント3: 誘導
N = int(input())
total = 0
for _ in range(N):
a = int(input())
total += a
# あとは total を print するだけ
模範解答 (Python)
N = int(input())
total = 0
for _ in range(N):
total += int(input())
print(total)
別解: sum + ジェネレータ式
N = int(input())
print(sum(int(input()) for _ in range(N)))
Step-by-Step 解説
11行目(N)を読み込む
N = int(input()) で1行を整数として取得。今回は1値だけなので split() は不要。
2合計を入れる変数を用意
total = 0 で初期化。「累積器(アキュムレータ)」と呼ばれる頻出パターン。
3N回ループして読み込む
for _ in range(N): で N 回反復。_ は使わないループ変数の慣習表記。total += int(input()) は total = total + int(input()) の省略形。
4結果を出力
print(total)
よくあるミス
| ミス | 原因 | 正しい書き方 |
|---|---|---|
total の初期化を忘れる | 変数未定義エラー | total = 0 を先に書く |
N = input() のまま | range("3") はエラー | N = int(input()) |
ループ後に print を書き忘れる | 何も出力されない | インデントに注意して for の外 |
for i in range(N): print(i) | ループ変数を誤解 | i はインデックスであり A_i ではない |
次のステップ
- 発展: 合計だけでなく最大値・最小値も同時に求める
- 発展: 空白区切りで N 個を1行に受け取る形式
list(map(int, input().split())) - 次回予告: 条件分岐(if/elif/else)
- 実際の問題: ABC086 A「Product」, ABC081 A「Placing Marbles」