添字の偶奇によって処理を分岐する系
問題概要
0 と 1 のみからなる、16 文字の文字列 が与えられる。
の左から偶数番目の文字がすべて '0' であるかどうかを判定せよ。
コード
先頭が S[0]
なので、S[1]
, S[3]
, ..., S[15]
の中に 1 があるかどうかを調べればよい (つまり、添字は奇数となる)。
- 1 があったら:"No"
- 1 がなかったら:"Yes"
を答える。for
文で添字を 2 ずつ増やしながら処理すると楽。
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; bool all_zero = true; for (int i = 1; i < S.size(); i += 2) { if (S[i] == '1') all_zero = false; } if (all_zero) cout << "Yes" << endl; else cout << "No" << endl; }