競技プログラミング用 知識集積所

ABC422A - Stage Clear

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識


考え方

まずは入力内容を確認。
入力内容は文字列なので、string型変数を用意してcinで受け取る。

次に、入力にあわせて出力を変えたいので、if分岐を用意する。
3文字目(コンピュータ的には2文字目)が8かどうかで分岐したいので、
if (s.at(2)=='8') {
  処理;
} else {
  処理;
}
の形で用意する。

3文字目が8だった場合、次ワールドの1コースに行くので、
s.at(0)++;
s.at(2)='1';
とすればよい。
これは、'0'から'9'まではASCIIコードで並んでいるので、'8'以下なら++で次のやつになることを利用している。

それ以外の場合は単純に
s.at(2)++;
ステージ数を1増やせばよい。

最後に忘れずにcoutで出力しておしまい。

解答例


注意点

8と'8'の違いに注意する。

s.at(2)=='8'を誤ってs.at(2)==8と書くと、ASCIIコードが8である文字であるかの判定になってしまう。
きちんとchar型の'8'と比較すること。

別解

ウィキ募集バナー