AtCoder が提供しているABC(AtCoder Beginner Contest)274 のA問題をC++とPythonで解いてみました。ABC274は、2022年10月22日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Batting Average(Difficulty : 23)
問題はリンク先をご覧ください。
浮動小数点数の出力について問う問題です。AtCoder Problems による Difficulty は、23 でした。
解答案
問題を解く方針を書きだします。
- 整数を2つ読み、割り算の結果を出力する。
難しいのは、割り算の結果を小数点以下3桁(末尾が0の場合も省略しない)まで出力することです。AOJ で提供されている「プログラミング入門」(ITP1)の 4_A(A / B Problem)で小数点以下の桁数を指定する方法を解説しています。よろしければ、そちらもご覧ください。
C++ プログラム例(ABC274A)
iostream でも小数点以下の桁数は指定できます。この場合は、stdio.h(cstdio)の printf を使う方が簡単に出力できます。以下が、解答例です。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
printf("%.3lf\n", (double)b / (double)a);
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC274A)
Python では、f文字列を使って、小数点以下の桁数を指定できます。
"""AtCoder Beginner Contest 274 A"""
a, b = map(int, input().split())
print(f"{b / a:.3f}")
こちらも「AC」と判定されました。
最後に
小数点以下の桁数も出力方法を知らなければ、時間を取られます。簡単な問題でも数を解くことにより、文法面での穴が少なくなると考えています。
引き続き ABC の問題を紹介していきます。