for 文の練習。色んな書き方がありそう。
問題概要
高橋君は 週間歩いた距離を記録した。 日目には、それぞれ 歩歩いた。
各週について、高橋君が 1 週間で歩いた歩数の合計を出力してください。
解法
前提として、配列を 0 始まりで考えることにする。この場合、1 週間の終わりを表す配列の添字は 6, 13, 19, .... となる。
for
文を用いて添字 を から まで動かしつつ、 で区切るような実装が楽だと思う。
#include <bits/stdc++.h> using namespace std; int main() { // 入力 int N; cin >> N; vector<int> A(N*7); for (int i = 0; i < N*7; ++i) cin >> A[i]; int sum = 0; // 和を表す変数 for (int i = 0; i < N*7; ++i) { sum += A[i]; // i = 6, 13, 19, ... で一区切りとなる if (i % 7 == 6) { cout << sum << " "; // sum をリセットする sum = 0; } } cout << endl; }