Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Two exponentiate algorithms, the first one it's better than second. */
- func exponentiate(number : Int, exponent : Int) -> Int {
- var n = number, e = exponent, r = 1, v = 0
- func descriptionVar() -> String { return "Loop v :\(v), n =\(n), e = \(e), r = \(r)" }
- while (e > 0) {
- if e%2 != 0 { r = r*n }
- e /= 2
- n *= n
- v++
- descriptionVar()
- }
- return r
- }
- exponentiate(2, 9) -> 4 loops
- //Loop v :1, n =4, e = 4, r = 2
- //Loop v :2, n =16, e = 2, r = 2
- //Loop v :3, n =256, e = 1, r = 2
- //Loop v :4, n =65536, e = 0, r = 512
- func exponentiate2(number : Int, exponent : Int) -> Int {
- var n = exponent, r = 1
- while (n > 0) {
- r *= number ;
- n--;
- }
- return r
- }
- exponentiate2(2, 9) -> 9 Loops
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement