本サイトAIZU ONLINE JUDGE ITP1_4_A へはこちらから
問題:割り算
2つの整数 a と b を読み込んで、以下の値を計算するプログラムを作成して下さい:
- a ÷ b : d (整数)
- a ÷ b の余り : r (整数)
- a ÷ b : f (浮動小数点数)
Input
1行に2つの整数 a, b が与えられます。
Output
d, r, f を1つの空白で区切って1行に出力して下さい。fについては、0.00001以下の誤差があってもよいものとします。
Constraints
- 1 ≤ a, b ≤ 109
Sample Input
3 2
Sample Output
1 1 1.50000
解答例
a, b = map(int, input().split())
print('{0} {1} {2:.5f}'.format(a//b, a % b, a/b))
解説
以下のように解いていきます。
2つの整数の読み込み
ここではmap関数を使用します。第二引数のinput().split()で空白区切りの文字列として取得した値を、一つずつint関数に当てはめて整数型に変換し、a、bに設定していきます。
# input().split()で空白区切りの文字列を取得 → intに変換 → a、b に設定
a, b = map(int, input().split())
※サイト内「AIZU ONLINE JUDGE ITP1_1_Cをpythonで解いてみた」の、map関数とはにmap関数の使用方法が書かれておりますのでぜひご覧ください。
割り算の商、割り算の余り、浮動小数点数を使用しての割り算の結果の表示
割り算の商は //
割り算の余りは %
を使用します。
※サイト内「pythonの演算子についてまとめてみた」に演算子の使用方法をまとめましたのでよかったらご覧ください。
また、浮動小数点数を使用しての割り算の結果の表示はformat関数を使用して、少数第五位まで表示するように設定します。
format関数の引数にを”a/b”を設定し、置き換え先に”{2:.5f}”を設定します。
※.5fは少数第五位までを意味しています。
また、{}(置換フィールド)に数値を設定することで、表示する順番を指定する事ができます。数値を使用する場合は、 0 , 1 , 2 , … と順番に数値を指定していきます。指定する数字は0から始まることに注意しましょう。
# //は商、%は余り、a/bを少数第五位まで表示するため、置き換え先を{2:.5f}にする。
# {0} {1} {2}の順番にa//b, a % b, a/bが設定される。
print('{0} {1} {2:.5f}'.format(a//b, a % b, a/b))
※サイト内「AIZU ONLINE JUDGE ITP1_1_Dをpythonで解いてみた」の、format関数とはにformat関数の使用方法が書かれておりますのでよかったらご覧ください。
最後に、もう一度プログラムを確認してみましょう。
# input().split()で空白区切りの文字列を取得 → intに変換 → a, b に設定
a, b = map(int, input().split())
# //は商、%は余り、a/bを少数第五位まで表示するため、置き換え先を{2:.5f}にする。
# {0} {1} {2}の順番にa//b, a % b, a/bが設定される。
print('{0} {1} {2:.5f}'.format(a//b, a % b, a/b))
コメント