Нужно найти факториал 5! с помощью for in, while, repeat while
Факториал в циклах
Ookey
#4
var num: Int = 5
var result: Int = 1
for i in 1...5 {
result *= i
}
print(result)
result = 1
while num != 0 {
result *= num
num -= 1
}
print(result)
num = 5
result = 1
repeat {
result *= num
num -= 1
} while num != 1
print(result)
Den
#5
А мне как-то вот так захотелось:
extension Int {
func factorial()->Int{
guard self != 0 else {
return 0
}
return (1...self).reduce(1, *)
}
}
let aaa = 5
let bbb = aaa.factorial()
Блин, не прочитал условия(
Ivan411
#8
repeat {
result *= num
num -= 1
} while num != 1
а в while точно num != 1? может num != 0 как в примере выше?я не придираюсь, может кто то как я будет делать и у него возникнет вопрос.
Ookey
#9
Именно что 1 т.к. while - это цикл с предусловием (сначала идет проверка, затем выполняется действие), а repeat while - это цикл с постусловием (сначала действие, затем проверка).
К слову, в моих примерах включено умножение на единицу, но лучше делать без - лишнее действие:
for i in 2...5
while num != 1
repeat ... while n != 2
все равно n*1 = n