AIZU ONLINE JUDGE ITP1_4_Bをpythonで解いてみた

python

本サイトAIZU ONLINE JUDGE ITP1_4_B へはこちらから

目次

問題:円の面積と円周

半径 r の円の面積と円周の長さを求めるプログラムを作成して下さい。

Input

1つの実数 r が与えられます。

Output

面積と円周の長さを1つの空白で区切って1行に出力して下さい。出力は浮動小数点数とし、0.00001 以下の誤差を含んでもよいものとします。

Constraints

  • 0 < r < 10,000

Sample Input 1

2

Sample Output 1

12.566371 12.566371

Sample Input 2

3

Sample Output 2

28.274334 18.849556

解答例

import math

r = float(input())
print('{0:.6f} {1:.6f}'.format(r*r*math.pi, 2*r*math.pi))

または

from math import pi

r = float(input())
print('{0:.6f} {1:.6f}'.format(r*r*pi, 2*r*pi))

解説

以下のように解いていきます。

  1. 1つの実数の読み込み
  2. 円の面積と円周の長さの表示

Pythonでは、実数は 浮動小数点数(floating point number) という形式で、 float型 と呼ばれます。

ここでは、input関数をfloat関数で囲み実数値として取得します。

# input関数をfloat関数で囲み実数値を取得
r = float(input())

円の面積の公式は 半径 × 半径 × π

円周の長さの公式は 2 × 半径 × π

半径rは1つの実数の読み込みで求めていますので、π(円周率)を求めることで答えを導き出す事ができます。

π(円周率)はmathモジュールをインポートすることで使用する事ができます。

mathモジュールとは

mathモジュールはPythonの組み込みモジュールの1つです。度数法・弧度法の変換や三角関数、指数関数、対数関数、円周率、ネイピア数等、数学処理に必要となる機能が一通り揃ったモジュールです。

文頭に”import math”と宣言しておくと、数学処理に必要となる機能が使えるようになります。

以下ではmathモジュールを使用して、π(円周率)を表示しています。

import math

print(math.pi)
# 3.141592653589793

from math import pi と宣言し、math.pi を呼びだしておけば、pi という名前で円周率を扱えます。

from math import pi

print(pi)
# 3.141592653589793

今回はmathモジュールをインポートし、円の面積と円周の長さを表示します。

import math

r = float(input())
# 円の面積(r*r*math.pi) 円周の長さ(2*r*math.pi)
print('{0:.6f} {1:.6f}'.format(r*r*math.pi, 2*r*math.pi))

print関数で表示する際に、format関数を使用し書式を設定しています。今回は”0.00001 以下の誤差を含んでもよい”の制限(Constraints)から少数第六位までを表示するため、'{0:.6f} {1:.6f}’のように’.6f’と設定します。

from math import piを宣言した場合は以下のようになります。

from math import pi

r = float(input())
# 円の面積(r*r*pi) 円周の長さ(2*r*pi)
print('{0:.6f} {1:.6f}'.format(r*r*pi, 2*r*pi))

※サイト内「AIZU ONLINE JUDGE ITP1_1_Dをpythonで解いてみた」の、format関数とはにformat関数の使用方法が書かれておりますのでよかったらご覧ください。

最後に、もう一度プログラムを確認してみましょう。

import math

# input関数をfloat関数で囲み実数値を取得
r = float(input())

# 円の面積(r*r*math.pi) 円周の長さ(2*r*math.pi)
print('{0:.6f} {1:.6f}'.format(r*r*math.pi, 2*r*math.pi))

または

from math import pi

# input関数をfloat関数で囲み実数値を取得
r = float(input())

# 円の面積(r*r*pi) 円周の長さ(2*r*pi)
print('{0:.6f} {1:.6f}'.format(r*r*pi, 2*r*pi))
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

■保有資格
Salesforce 認定 Platform アプリケーションビルダー
Salesforce 認定 Platform デベロッパー

コメント

コメントする

目次