問題
問題文
実数 $X.Y$ が与えられます。ただし $Y$ はちょうど $1$ 桁です。
・$0 \le Y \le 2$ ならば、$X-$
・$3 \le Y \le 6$ ならば、$X$
・$7 \le Y \le 9$ ならば、$X+$
と出力してください。
制約
・$1 \le X \le 15$
・$0 \le Y \le 9$
・$X$ と $Y$ は整数
回答
回答1 (AC)
小数は小数点以下1桁なので、10倍すれば整数演算に持ち込むことが出来ます。コードは以下のようになりました。
abc216a-1.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
float r;
cin >> r;
int z, x, y;
z = (int)(r*10);
x = z/10;
y = z%10;
string add = "";
if ( y<=2 ) {
add = "-";
} else if ( y>=7 ) {
add = "+";
}
cout << x << add << endl;
}
調べたこと
AtCoder の解説 → 公式解説
string 型変数を使った回答が紹介されていました。
リンク
前後の記事
- 前の記事 → AtCoderログ:0097 - ABC 216 に参加しました
- 次の記事 → AtCoderログ:0099 - ABC 216 B