当サイトの記事にはプロモーションが含まれています。
ABC397 - A - Thermometer
最終更新:2025-03-19 投稿日:2025-03-19
2025/03/15に行われたオムロンプログラミングコンテスト2025(AtCoder Beginner Contest 397)のA問題の解法についての記事です。
考えたこと
誤差の原因になってしまう可能性があるため、なるべく小数として扱いたくありません。
そこで、体温\( X \)をstring型で取得して処理していくことにしました。
コードの例
#include <bits/stdc++.h>using namespace std;int main() {string X;cin >> X;int a,b,c;a = X.at(0) - '0';b = X.at(1) - '0';c = X.at(3) - '0';a *= 100;b *= 10;c *= 1;int temp = a + b + c;int ans = 0;if (temp >= 380) {ans = 1;} else if (temp >= 375) {ans = 2;} else {ans = 3;}cout << ans << endl;return 0;}
解法
例えば \( X \) == 36.8 の場合、
\(a \) = 3
\(b \) = 6
\(c \) = 8
とした上で、\( temp = a * 100 + b * 10 + c \)を求めます。
あとは求めた\( temp \)の値によってif文で条件分岐させ、3段階のうちどこに割り振られるかを判定すればよいです。
小数点を除去するために\( temp \)は\( X \)を10倍した値になっているので、if文での条件も10倍する必要があることには注意しましょう。