これは難しい!
問題概要
4 桁の整数 が与えられる。この整数が「同じ数字が 3 つ以上連続しているか」を判定せよ。
解法
を文字列として受け取る方が楽だと思われる。このとき、同じ数字が 3 つ以上連続するのは次の 2 パターンがある。
N
の 0 文字目と 1 文字目と 2 文字目が等しいN
の 1 文字目と 2 文字目と 3 文字目が等しい
なお、すべての文字が等しいパターンもあるが、それは上記のパターンに含まれている。
あとは、これを判定すれば OK。
#include <bits/stdc++.h> using namespace std; int main() { string N; cin >> N; if (N[0] == N[1] && N[1] == N[2]) cout << "Yes" << endl; else if (N[1] == N[2] && N[2] == N[3]) cout << "Yes" << endl; else cout << "No" << endl; }