ITP1_4_D: Min, Max and Sum
最小値, 最大値, 合計値 | プログラミング入門 | Aizu Online Judge
最小値、最大値、合計値を求める問題
最小値、最大値については、順次比較をし、入れ替えるかどうかを条件分岐させます。
最大値は、順次加算していきます。
解答1
n = int(input()) line = list(map(int, input().split())) max = line[0] min = line[0] sum = line[0] for i in range(1, n): if max < line[i]: max = line[i] elif min > line[i]: min = line[i] sum += line[i] print(min, max, sum)
解答2
最小値、最大値、合計値に関して、pythonではそれぞれmin()
max()
sum()
が用意されています。
n = input() a = list(map(int, input().split())) print(min(a), max(a), sum(a))
ITP1_4_C: Simple Calculator
単純計算器 | プログラミング入門 | Aizu Online Judge
入力値から数値と演算子を読み込み計算する問題
解答1
while True: line = input().split() a = int(line[0]) op = line[1] b = int(line[2]) if op == '+': print(a + b) elif op == '-': print(a - b) elif op == '*': print(a * b) elif op == '/': print(a // b) else: break
解答2
eval()
を利用すると引数で渡した文字列がpythonコードとして評価されます
while True: line = input() if '?' in line: break print(eval(line.replace('/', '//')))
ITP1_4_B: Circle
円 | プログラミング入門 | Aizu Online Judge
円の面積と円周を求める問題
円周率はmathモジュールの中に、piとして定義されています。
import math
を記述してモジュールを取り込みます。
math.py
と記述し、mathモジュールの中のpiを利用します。
解答
import math r = float(input()) m = r ** 2 * math.pi l = r * 2 * math.pi print('{:.6f} {:.6f}'.format(m, l))
ITP1_4_A: A / B Problem
A / B 問題 | プログラミング入門 | Aizu Online Judge
割り算の問題
python3では、割り算に関して以下の三つの形式があります。
/
は、除算をし浮動小数点数を返します。
//
は、除算をし小数部を切り捨てて整数を返します。
%
は、剰余を返します。
解答
a, b = map(int, input().split()) d = a // b r = a % b f = a / b print(d, r, "{:.5f}".format(f))
ITP1_3_D: How Many Divisors?
約数の数 | プログラミング入門 | Aizu Online Judge
約数の個数を求める問題
aからbまでの間繰り返すのにrange()
を利用します。
cの約数であるということは、cで割ったときの余りが0であることに等しいので、その個数を記録します。
解答
a, b, c = map(int, input().split()) count = 0 for i in range(a, b + 1): if c % i == 0: count += 1 print(count)
ITP1_3_C: Swapping Two Numbers
2つの数の交換 | プログラミング入門 | Aizu Online Judge
複数の入力値を比較し入れ替えて出力する問題
a > b
とそれ以外の場合とで条件を分岐して出力します。
解答1
while True: a, b = map(int, input().split()) if a == 0 and b == 0: break elif a < b: print(a, b) else: print(b, a)
解答2
並べ替えてから出力します。
while True: a, b = sorted(map(int, input().split())) if a == 0 and b == 0: break print(a, b)
ITP1_3_B: Print Test Cases
テストケースの出力 | プログラミング入門 | Aizu Online Judge
複数の入力データを処理する問題
入力値が0の場合に繰り返し構文から抜けます。
解答1
i = 1 while True: x = int(input()) if x == 0: break print("Case {}: {}".format(i, n)) i += 1
解答2
x = input() i = 1 while (x != '0'): print("Case {}: {}".format(i, x)); i += 1;