AIZU ONLINE JUDGE: Programming Challenge プログラミング入門 トピック4

AOJの プログラミング入門 トピック4にチャレンジしました。

 

ここまでやって思うのは、解き終わった後に次に進むnextボタンみたいなのが欲しい

ということです。。

 

 トピック4:計算

トピック4は計算式に用いる演算子を使用したプログラムで、4_Aから4_Dまでの4問です。

トピック4

 

4_A:A/B Problem

4_Aは割り算を行い、商、あまり、浮動小数点表示の3つで出力するプログラムです。

言語解説がPython3にもどりました。。

 

4_A:A/B Problem

 

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)

 

Completed

 

 

 

/* -----codeの行番号----- */