##トピック #4 計算
AIZU ONLINE JUDGEの問題にSwiftで解答したものになります。競技プログラミングは普段やりませんので、こうしたほうが簡単!などがあればコメントで教えて下さい。
##4_A 割り算
問題
2つの整数 a と b を読み込んで、以下の値を計算するプログラムを作成して下さい:
a ÷ b : d (整数)
a ÷ b の余り : r (整数)
a ÷ b : f (浮動小数点数)
解答
let a = readLine()!.split(separator: " ").map({Int($0)!})
print(a[0]/a[1],a[0]%a[1],Double(a[0])/Double(a[1]))
###4_B 園の面積と演習
問題
半径 r の円の面積と円周の長さを求めるプログラムを作成して下さい。
解答
import Foundation
let a = Double(readLine()!)!
print(a*a*M_PI,2.0*a*M_PI)
円周率はimport FoundationまたはUIKitしたのちM_PIで表せます。
###4_C 計算機
問題
2つの整数 a, b と1つの演算子 op を読み込んで、a op b を計算するプログラムを作成して下さい。ただし、演算子 op は、"+"(和)、"-"(差)、"*"(積)、"/"(商)、のみとし、割り算で割り切れない場合は、小数点以下を切り捨てたものを計算結果とします。
解答
let a = readLine()!.split(separator: " ")
while a[1] != "?" {
var s = Int(a[0])!
var t = Int(a[2])!
var u = a[1]
switch u {
case "+":
print(s+t)
case "-":
print(s-t)
case "*":
print(s*t)
default:
print(s/t)
}
}
問題
1行目に整数の数nが与えられます。2行目にnこの整数a_iが空白区切りで与えられます。
最小値、最大値、合計値を空白区切りで1行に出力してください。
解答
let n = Int(readLine()!)!
let a = readLine()!.split(separator: " ").map({Int($0)!}).sorted()
var sum = 0
for i in a {
sum += i
}
print(a[0],a[n-1],sum)
配列.sorted()は便利ですね。