問題
問題文
AtCoder 王国では、競技プログラミングの実力を測る検定試験が実施されています。
試験は $100$ 点満点であり、点数が高ければ高いほど、高いランクが認定されます。
ランクは以下のように定められています。
・$0$ 点以上 $40$ 点未満のとき、初級
・$40$ 点以上 $70$ 点未満のとき、中級
・$70$ 点以上 $90$ 点未満のとき、上級
・$90$ 点以上のとき、エキスパート
高橋君は、この検定試験を受験し、$X$ 点を取りました。
高橋君が認定されたランクより一つ高いランクとなるためには最低であと何点必要か求めてください。ただし、高橋君がエキスパートと認定された場合、それより高いランクは存在しないため expert と出力してください。
制約
・$0 \le X \le 100$
・$X$ は整数
回答
回答1 (AC)
高橋君が初級ならば、つまり $X<40$ ならば、中級になるにはあと $40-X$ 点が必要です。同様に、高橋君が中級ならば、つまり $40\le X<70$ ならば、上級になるにはあと $70-X$ 点が必要です。高橋君が上級ならば、つまり $70\le X<90$ ならば、エキスパートになるのはあと $90-X$ 点が必要です。これらのことを順番にコードに置き換えていけば良いでしょう。コードは以下のようになりました。
#include <bits/stdc++.h>
using namespace std;
int main(){
int x;
cin >> x;
if ( x<40 ) {
cout << 40-x << endl;
} else if ( x<70 ) {
cout << 70-x << endl;
} else if ( x<90 ) {
cout << 90-x << endl;
} else {
cout << "expert" << endl;
}
}
調べたこと
AtCoder の解説 → 公式解説
回答1と同じ方針でした。