アルゴリズムの問題を説いてみましょう。
入力した自然数の各桁を足すプログラムを作ってください。
足した結果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