Пример 1.
Массив из элементов структуры Pow2, заполняем значениями степеней 2-и в цикле repeat while и выводим значения с помощью метода forEach.
struct Pow2 {
var pow = 0
var val = 0
}
var arrPow2 = Array()
var i = 1
let a = 2
var b = 1
repeat {
b = b * a
arrPow2.append(Pow2(pow: i, val: b))
i += 1
}
while i < 11
arrPow2.forEach({print("2^\($0.pow) = \($0.val)")})
Пример 2.
Используя вложенные циклы for и repeat получаем последовательность простых чисел.
var sim = true
var arr = [Int]()
for x in 2...1000 {
var y = x - 1
repeat {
if x % y == 0 {
sim = false
}
y -= 1
} while y > 1
if sim { arr.append(x) }
sim = true
}
arr.forEach({print($0)})
Пример 3.
Вычисление последовательности чисел Фибоначи последовательно и программирование функций получения любого числа Фибоначи по формуле золотого сечения и с помощью рекурсивных функций.
import UIKit
var f = 1
var t1 = 1
var t2 = 1
var dicFibo = [0:1, 1:1]
let sqrt5 = sqrt(5)
let fi = (1 + sqrt5)/2 // Золотое сечение
// Простейший метод последовательного получения ряда
for i in 2...92 {
f = t2 + t1
t2 = t1
t1 = f
print((i, f, Fibo(i+1), Fibo3(i+1)))
}
// Вычисление ЧФ по формуле золотого сечения
func Fibo(_ n: Int) -> Int {
return Int(pow(fi, Double(n))/sqrt5 + 1/2)
}
// Рекусивнаяфункция полчения ЧФ
func Fibo2(_ n: Int) -> Int {
return n > 2 ? Fibo2(n - 1) + Fibo2(n - 2) : 1
}
// Оптимальная рекурсивная ф-ия вычисления ЧФ по его номеру
func Fibo3(_ n: Int) -> Int {
if(!dicFibo.contains(where: {$0.key == n})) {
dicFibo[n] = n > 2 ? Fibo3(n - 1) + Fibo3(n - 2) : 1
}
return dicFibo[n]!
}
Swift 5 для начинающих. Урок 3 – циклы и функции.