【Swift】入力した自然数の各桁を一桁になるまで足す

アルゴリズムの問題を説いてみましょう。

入力した自然数の各桁を足すプログラムを作ってください。

足した結果2桁になる場合は、その数字をまた各桁足し、1桁になるまで続けます。


入力値:2018

計算: 2+0+1+8=11
11は2桁なのでもう一度繰り返す。
1+1=2

出力値:2

答えの例

// union 各行を足していく処理

func addUnitNumber(number: Int) -> Int {
let strNumber = String(number)
let strNumbers = strNumber.compactMap {String($0)}
let numbers = strNumbers.compactMap{Int($0)}
var result = numbers.reduce(0) {$0 + $1}

if result > 9 {
result = addUnitNumber(number: result)
}
return result
}

addUnitNumber(number: 2018)// ->2
addUnitNumber(number: 1980)// ->9