これは C++ よりも C で書いた方が楽かもしれない!
問題概要
"15.3" のような形式で、小数点第一位まで示された小数が与えられる。
- 小数第一位の値が 0 以上 2 以下ならば、整数部分に "-" をつけて(たとえば "15-")
- 小数第一位の値が 3 以上 6 以下ならば、整数部分をそのまま (たとえば "15")
- 小数第一位の値が 7 以上 9 以下ならば、整数部分に "+" をつけて (たとえば "15+")
出力せよ。
解法
与えられた入力を「整数部分」と「小数部分」とにパースする部分が難しいかもしれない。言語によって書き方は変わると思われるが、C 言語ならば、次のように書ける。
int X, Y; scanf("%d.%d", &X, &Y);
この処理によって、X
は整数部分の値、Y
は小数第一位の値を表すようになる。
あとは、if
文を用いて、Y
の値に応じて適切に出力すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { int X, Y; scanf("%d.%d", &X, &Y); if (Y <= 2) printf("%d-\n", X); else if (Y <= 6) printf("%d\n", X); else printf("%d+\n", X); }