https://atcoder.jp/contests/past202107-open/tasks/past202107_a
解説
https://atcoder.jp/contests/past202107-open/submissions/24459496
シミュレーション問題。
問題で要求されていることを実装しよう。
まず、自分の実装ではコードを文字列で取り込んでいる。
問題文でも文字列ですという風に書いてある所を見ると、文字列で取り込むのがオススメなのかも。
偶数番目、奇数番目というのはループの添え字に対して2で割った余りを利用するのがいい。
上級者はbit演算を使うかもしれないが、もちろんそれでもいい。
文字列としてコードを取り込んだ場合、各桁は文字として扱われるが、これを数に変換する必要がある。
これにはいくつか方法があり、標準ライブラリでも使える関数があるが、自分はS[i]-'0'のようにして変換している。
これはAscii的な所を意識した部分であるが、パッと見て何を目的としたものか分かりにくいかもしれない。
文字を数に変換していると思ってほしい。
string S; //--------------------------------------------------------------------------------------------------- void _main() { cin >> S; int tot = 0; rep(i, 0, 14) if (i % 2 == 0) tot += S[i] - '0'; tot *= 3; rep(i, 0, 14) if (i % 2 == 1) tot += S[i] - '0'; if (S[14] - '0' == tot % 10) cout << "Yes" << endl; else cout << "No" << endl; }