構文解析の初歩ですね。C++ なら、scanf()
関数を使うと楽ですね。
問題概要
"ABC197" のような長さ 6 の文字列 が与えられる。
何回目の ABC であるかを判定し、それが 316 回を除く、1〜349 回のいずれかであるかどうかを判定せよ。
解法
C++ の場合、cin
よりも scanf()
を使う方が楽。int
型変数 N
を用意して、
scanf("ABC%d", &N);
というようにして、数値情報のみを取得できる。この値が 316 を除く 1〜349 のいずれかであるかを判定すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; scanf("ABC%d", &N); if (N >= 1 && N <= 349 && N != 316) cout << "Yes" << endl; else cout << "No" << endl; }