Day 002 — 複数行入力と合計

2026-04-09 灰色 / Phase 1 ★☆☆☆☆ 入出力・四則演算

問題

整数 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」

自己評価

自分の回答

気づき・メモ