0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AIZU ONLINE JUDGE の問題をSwiftでやってみた(プログラミング入門 計算編)

Posted at

##トピック #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()は便利ですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?