for 文を二重にしたり、フラグを管理したりする練習!
問題概要
個の整数値が与えられる。これらの整数値は
以上
以下の整数から 2 個を除外したものとなっている。
その除外された 2 個の整数値を小さい順に答えよ。
考えたこと
から
までの数に対して、順に「その数が 28 個の整数の中に含まれているか」を調べていけば OK。
コード
#include <bits/stdc++.h> using namespace std; int main() { // 28 人の番号を受け取る vector<int> ids(28); for (int i = 0; i < 28; ++i) cin >> ids[i]; // 1 から 30 までを順に試していき、番号があるかどうかを check していく for (int i = 1; i <= 30; ++i) { // 番号があるかどうかを check するフラグ bool exist = false; // 28 人の番号を順に見ていく for (int j = 0; j < ids.size(); ++j) { // 番号があったら if (ids[j] == i) { // フラグを on にする exist = true; } } // フラグが off のままだったら、その番号はないので出力する if (!exist) { cout << i << endl; } } }