AOJの プログラミング入門 トピック4にチャレンジしました。
ここまでやって思うのは、解き終わった後に次に進むnextボタンみたいなのが欲しい
ということです。。
トピック4:計算
トピック4は計算式に用いる演算子を使用したプログラムで、4_Aから4_Dまでの4問です。
4_A:A/B Problem
4_Aは割り算を行い、商、あまり、浮動小数点表示の3つで出力するプログラムです。
言語解説がPython3にもどりました。。
map関数でいつものように標準入力を変数で受けて、出力を商、あまり、浮動小数の公正で記述すれば完成です。割った結果が整数になるように"//”演算子をを使用しました。余りを求めるには"%"演算子を使用しました。
最後に浮動小数表示で小数点以下5桁までを表示するフォーマットで出力しました。
aaa,bbb = map(int,input().split())
print(aaa//bbb,aaa%bbb,"{:.5f}".format(aaa/bbb))
C言語などでも使用されている%dや%fを使用すると以下のような記述になります。
こちらでもCompletedが確認できました。
print("%d %d %.5f"%(aaa/bbb,aaa%bbb,aaa/bbb))
4_B:Circle
4_Bは面積と円周を解く問題です。
2πrとπr**2
aaa = float(input())
pi = 3.141592653589
print(aaa*aaa*pi,aaa*2*pi)
標準入力をfloat(浮動小数点)にしました。
πは言語解説に記載されているπのメモの値をそのまま使用しました。
参考までにほかの方の解答を参照したところ、
mathモジュールをImportしてmath.piの値を利用している方もいました。
4_C:Simple Caluculator
演算子に合わせて演算結果を返すプログラムです。前回使用した無限ループを用いて、最後に" ? "がでてきたらbreakして終了するように記述しました。
型が混じっているので、型変換は途中で行いました。
割り算の結果は整数でないとERRORとなったので、"/”ではなく、"//”を使用しました。
while True:
aaa,bbb,ccc = input().split()
aaa = int(aaa)
bbb = str(bbb)
ccc = int(ccc)
if bbb=='?':
break
elif bbb=='+':
print(aaa+ccc)
elif bbb=='-':
print(aaa-ccc)
elif bbb=='*':
print(aaa*ccc)
elif bbb=='/':
print(aaa//ccc)
4_D:Min,Max and Sum
最後は入力値の最小値、最大値、合計値を求めるプログラムです。
最初の入力が次に入力されるデータの数、その次の行にデータ値が表示されるのですが、特に最初のデータを使用しなくてもリストの最小、最大、合計を求めればcompletedできました。
解ければいいという考えではこれでもいいと思いました。
sum1 = int(input())
list_a = list(map(int,input().split()))
min_a = min(list_a)
max_a = max(list_a)
sum_a = sum(list_a)
print(min_a,max_a,sum_a)