A - Rounding Editorial by TumoiYorozu


この解説は、C++ に入門したばかりの中高生レベルを想定して、考察の方法、コードの書き方の解説をします。

この問題は、条件分岐(if文)を使うことで解くことが出来る。

コード例 (実際の提出のリンクはこちら)

#include <bits/stdc++.h>
using namespace std;
int main(){
    // int 型の変数(箱)を3つ作る
    int X, A, answer;

    // cin で入力を受け取ることができる。「>>」で区切ること(<<ではない)
    cin >> X >> A;

    // もしも X が A 未満のとき
    if (X < A) {
        answer = 0;
    }

    // もしも X が A 以上のとき
    if (X >= A) {
        answer = 10;
    }

    // cout を使うと答えを出力することが出来る。「<<」で区切ること(>>ではない)
    // endl で改行する。
    cout << answer << endl;
}


問題文のとおりにするために長めに書いたが、else を使って以下のようにも書ける。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int X, A, answer;

    cin >> X >> A;

    // もしも X が A 未満のとき
    if (X < A) {
        answer = 0;

    // もしも X が A 未満ではなく、A以上のとき
    } else if (X >= A){
        answer = 10;
    }
    cout << answer << endl;
}


このとき、もしも X が A 未満ではなかったとき、『X がA以上』は確定事項なので、else に続けて if を書くのではなく、 else だけを書けば良い。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int X, A, answer;

    cin >> X >> A;

    // もしも X が A 未満のとき
    if (X < A) {
        answer = 0;

    // そうでなかったとき
    } else {
        answer = 10;
    }
    cout << answer << endl;
}


また、上のコードでは変数 answer に答えを代入していたが、直接 cout で表示しても良い。そうすると、以下のようにとてもシンプルになる。

コード例 (実際の提出のリンクはこちら)

#include <bits/stdc++.h>
using namespace std;
int main(){
    int X, A;

    cin >> X >> A;

    if (X < A) {
        cout << 0 << endl;
    } else {
        cout << 10 << endl;
    }
}

posted:
last update: