Aizu Online Judge(AOJ)が提供している「プログラミング入門」(ITP1)の4_B問題をC++とPython で解いてみました。
ITP1 のトピック4では、計算について学びます。「計算式に用いられる様々な演算子を学習します。」とあります。この学習コースを通じて、Python に慣れていきたいと考えています。
問題(4_B: Circle)
問題はリンク先をご覧ください。
浮動小数点数を使った演算をします。また円周率をそれぞれの言語のライブラリから参照する方法も紹介します。
解答案
C++ プログラム例(ITP1 4_B)
Cライブラリ math.h をインクルードすると、M_PI で円周率を参照することができます。円周率を参照して円の面積と円周の長さを出力します。
#include <cstdio>
#include <cmath>
int main() {
double r;
scanf("%lf", &r);
printf("%lf.6 %lf.6\n", M_PI * r * r, 2.0 * M_PI * r);
return 0;
}
iostream を使っても小数点以下の桁数を指定できますが、printf を使うほうが簡単に書けるため、printf(stdio.h)を採用しました。
Python プログラム例(ITP1 4_B)
Python では、math モジュールを import すると、math.pi で円周率を参照することができます。演算で浮動小数点を前提とするため入力を float で変換しています。
import math
r = float(input())
print(f"{math.pi * r * r:.6f} {2.0 * math.pi * r:.6f}")
上記プログラムは、すべて AOJ で「AC(Accepted=正解)」と判定されます。
最後に
それぞれの言語が持つライブラリから円周率を参照して問題を解きました。
引き続き、ITP1 の問題を紹介していきます。