競技プログラミング用 知識集積所
ABC422A - Stage Clear
最終更新:
sport_programming
-
view
問題
必要知識
考え方
次に、入力にあわせて出力を変えたいので、if分岐を用意する。
3文字目(コンピュータ的には2文字目)が8かどうかで分岐したいので、
3文字目(コンピュータ的には2文字目)が8かどうかで分岐したいので、
if (s.at(2)=='8') {
処理;
} else {
処理;
}
の形で用意する。
3文字目が8だった場合、次ワールドの1コースに行くので、
s.at(0)++; s.at(2)='1';
とすればよい。
これは、'0'から'9'まではASCIIコードで並んでいるので、'8'以下なら++で次のやつになることを利用している。
これは、'0'から'9'まではASCIIコードで並んでいるので、'8'以下なら++で次のやつになることを利用している。
それ以外の場合は単純に
s.at(2)++;
ステージ数を1増やせばよい。
最後に忘れずにcoutで出力しておしまい。
解答例
注意点
8と'8'の違いに注意する。
s.at(2)=='8'を誤ってs.at(2)==8と書くと、ASCIIコードが8である文字であるかの判定になってしまう。
きちんとchar型の'8'と比較すること。
きちんとchar型の'8'と比較すること。