Skip to content

Commit 69edcb4

Browse files
committed
Fix indentation to 2 spaces
1 parent 8bc4e9a commit 69edcb4

File tree

2 files changed

+47
-47
lines changed

2 files changed

+47
-47
lines changed

Karatsuba Multiplication/KaratsubaMultiplication.playground/Contents.swift

+41-41
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,58 @@ import Foundation
66
print("Hello, Swift 4")
77
#endif
88
precedencegroup ExponentiativePrecedence {
9-
higherThan: MultiplicationPrecedence
10-
lowerThan: BitwiseShiftPrecedence
11-
associativity: left
9+
higherThan: MultiplicationPrecedence
10+
lowerThan: BitwiseShiftPrecedence
11+
associativity: left
1212
}
1313

1414
infix operator ^^: ExponentiativePrecedence
1515
func ^^ (radix: Int, power: Int) -> Int {
16-
return Int(pow(Double(radix), Double(power)))
16+
return Int(pow(Double(radix), Double(power)))
1717
}
1818

1919
// Long Multiplication - O(n^2)
2020
func multiply(_ num1: Int, by num2: Int, base: Int = 10) -> Int {
21-
let num1Array = String(num1).characters.reversed().map { Int(String($0))! }
22-
let num2Array = String(num2).characters.reversed().map { Int(String($0))! }
23-
24-
var product = Array(repeating: 0, count: num1Array.count + num2Array.count)
25-
26-
for i in num1Array.indices {
27-
var carry = 0
28-
for j in num2Array.indices {
29-
product[i + j] += carry + num1Array[i] * num2Array[j]
30-
carry = product[i + j] / base
31-
product[i + j] %= base
32-
}
33-
product[i + num2Array.count] += carry
21+
let num1Array = String(num1).characters.reversed().map { Int(String($0))! }
22+
let num2Array = String(num2).characters.reversed().map { Int(String($0))! }
23+
24+
var product = Array(repeating: 0, count: num1Array.count + num2Array.count)
25+
26+
for i in num1Array.indices {
27+
var carry = 0
28+
for j in num2Array.indices {
29+
product[i + j] += carry + num1Array[i] * num2Array[j]
30+
carry = product[i + j] / base
31+
product[i + j] %= base
3432
}
35-
36-
return Int(product.reversed().map { String($0) }.reduce("", +))!
33+
product[i + num2Array.count] += carry
34+
}
35+
36+
return Int(product.reversed().map { String($0) }.reduce("", +))!
3737
}
3838

3939
// Karatsuba Multiplication - O(n^log2(3))
4040
func karatsuba(_ num1: Int, by num2: Int) -> Int {
41-
let num1Array = String(num1).characters
42-
let num2Array = String(num2).characters
43-
44-
guard num1Array.count > 1 && num2Array.count > 1 else {
45-
return multiply(num1, by: num2)
46-
}
47-
48-
let n = max(num1Array.count, num2Array.count)
49-
let nBy2 = n / 2
50-
51-
let a = num1 / 10^^nBy2
52-
let b = num1 % 10^^nBy2
53-
let c = num2 / 10^^nBy2
54-
let d = num2 % 10^^nBy2
55-
56-
let ac = karatsuba(a, by: c)
57-
let bd = karatsuba(b, by: d)
58-
let adPlusbc = karatsuba(a+b, by: c+d) - ac - bd
59-
60-
let product = ac * 10^^(2 * nBy2) + adPlusbc * 10^^nBy2 + bd
61-
62-
return product
41+
let num1Array = String(num1).characters
42+
let num2Array = String(num2).characters
43+
44+
guard num1Array.count > 1 && num2Array.count > 1 else {
45+
return multiply(num1, by: num2)
46+
}
47+
48+
let n = max(num1Array.count, num2Array.count)
49+
let nBy2 = n / 2
50+
51+
let a = num1 / 10^^nBy2
52+
let b = num1 % 10^^nBy2
53+
let c = num2 / 10^^nBy2
54+
let d = num2 % 10^^nBy2
55+
56+
let ac = karatsuba(a, by: c)
57+
let bd = karatsuba(b, by: d)
58+
let adPlusbc = karatsuba(a+b, by: c+d) - ac - bd
59+
60+
let product = ac * 10^^(2 * nBy2) + adPlusbc * 10^^nBy2 + bd
61+
62+
return product
6363
}

Karatsuba Multiplication/KaratsubaMultiplication.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,24 @@ func ^^ (radix: Int, power: Int) -> Int {
2222
func karatsuba(_ num1: Int, by num2: Int) -> Int {
2323
let num1Array = String(num1).characters
2424
let num2Array = String(num2).characters
25-
25+
2626
guard num1Array.count > 1 && num2Array.count > 1 else {
2727
return num1 * num2
2828
}
29-
29+
3030
let n = max(num1Array.count, num2Array.count)
3131
let nBy2 = n / 2
32-
32+
3333
let a = num1 / 10^^nBy2
3434
let b = num1 % 10^^nBy2
3535
let c = num2 / 10^^nBy2
3636
let d = num2 % 10^^nBy2
37-
37+
3838
let ac = karatsuba(a, by: c)
3939
let bd = karatsuba(b, by: d)
4040
let adPlusbc = karatsuba(a+b, by: c+d) - ac - bd
41-
41+
4242
let product = ac * 10^^(2 * nBy2) + adPlusbc * 10^^nBy2 + bd
43-
43+
4444
return product
4545
}

0 commit comments

Comments
 (0)