問題
昨日と比べて、今日の気温が高いのか低いのかを教えてくれるプログラムを作成したいと思いました。
昨日の気温と今日の気温が入力として与えられるので、気温がどれだけ変化したかを計算して出力してください。
入力される値
入力は以下のフォーマットで与えられます
1 |
t1 t2 |
- t1は昨日の気温
- t2は今日の気温
- t1, t2は0以上の整数
期待する出力
- 昨日より今日の方が暖かければ、+(気温差)
- 昨日と今日が同じ気温なら、0
- 昨日より今日の方が寒ければ、-(気温差)
を出力してください。
考え方
単純な方法だと、入力された2つの値の差を取り、0より大きければ + をつけて表示、それ以外はそのまま表示させる。
String のイニシャライザで format:を渡し、符号付きで表示できれば簡単なのだが、それはできないようなので正攻法で解決させる。解答例
単純な方法だと
1 2 3 4 5 6 7 8 |
let ia = readLine()!.split(separator: " ").map { Int($0)! } let da = ia[1] - ia[0] if da > 0 { print("+\(da)") } else { print(da) } |
reduce を使い、一つだけ変数を減らしてみると
1 2 3 4 5 6 |
let da = readLine()!.split(separator: " ").map { Int($0)! }.reduce(0){ $1 - $0 } if da > 0 { print("+\(da)") } else { print(da) } |