Aizu Online Judge を Python 3 でやってます。 今回はITP1_4_A~ITP1_4_Dまでです。 計算問題の練習です。 ITP1_4_A - A / B Problem2つの整数 a と b を読み込んで、以下の値を計算を行います: a ÷ b : d (整数) a ÷ b の余り : r (整数) a ÷ b : f (浮動小数点数) ここをクリックして編集します.
Python3では整数の商を算出する演算子は // を使用します。 / は演算結果がfloat型(浮動小数点数)となりますので注意が必要です。 また、書式付きのprint()で、{2:.8f}として浮動小数点数の方の商は小数点以下8桁まで出力しています。 ITP1_4_B - Circle半径 r の円の面積と円周の長さを求めます。 ここをクリックして編集します.
float()で入力をfloat型に変換。 円周率πはmathもジュールをimportして、math.piで得ることができます。 ITP1_4_C - Simple Calculator2つの整数 a, b と1つの演算子 op を読み込んで、a op b を計算します。 演算子 op は、"+"(和)、"-"(差)、"*"(積)、"/"(商)、のみで、割り算で割り切れない場合は、小数点以下を切り捨てたものを計算結果とします。 opが?でプログラムが終了します。 ここをクリックして編集します.
Pythonではswitch文がありません。従って、if/elifで書きました。 もうちょっと頭を捻って、以下のようにもかけました。 ここをクリックして編集します.
これで演算子の分岐は必要なくなりました。が、もっと簡潔に書かれている人も http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=1482393#1 これがNo.1かな。奥が深い。。。 ITP1_4_D - Min, Max and Sum本日最後は、n個の整数 ai(i=1,2,...n)を入力し、それらの最小値、最大値、合計値を求めるプログラム。 ここをクリックして編集します.
私は入力データをソートして、a[0]とa[-1]でmin/maxとしましたが、Pythonでは組み込み関数のmin()とmax()がありますのでそちらを使ったほうが自然ですね。 感想計算機の問題は工夫の仕方があって面白かったです。 eval()っていいですね。ShellやTclなんかでは使ったことがありましたがPythonでも使えることを知って良い収穫になりました。
0 コメント
あなたのコメントは、承認後に掲載されます。
メッセージを残してください。 |