Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. /* Two exponentiate algorithms, the first one it's better than second. */
  2.  
  3. func exponentiate(number : Int, exponent : Int) -> Int {
  4. var n = number, e = exponent, r = 1, v = 0
  5. func descriptionVar() -> String { return "Loop v :\(v), n =\(n), e = \(e), r = \(r)" }
  6. while (e > 0) {
  7. if e%2 != 0 { r = r*n }
  8. e /= 2
  9. n *= n
  10. v++
  11. descriptionVar()
  12. }
  13. return r
  14. }
  15.  
  16. exponentiate(2, 9) -> 4 loops
  17. //Loop v :1, n =4, e = 4, r = 2
  18. //Loop v :2, n =16, e = 2, r = 2
  19. //Loop v :3, n =256, e = 1, r = 2
  20. //Loop v :4, n =65536, e = 0, r = 512
  21.  
  22. func exponentiate2(number : Int, exponent : Int) -> Int {
  23. var n = exponent, r = 1
  24. while (n > 0) {
  25. r *= number ;
  26. n--;
  27. }
  28. return r
  29. }
  30. exponentiate2(2, 9) -> 9 Loops
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement