diff --git a/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp b/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp index 31ac8d84c..f80d00272 100644 --- a/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp +++ b/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp @@ -59,9 +59,10 @@ std::string addStrings( std::string first, std::string second ) int64_t secondBit = second.at(i) - '0'; int64_t sum = (firstBit ^ secondBit ^ carry)+'0'; // sum of 3 bits - sum = std::to_string(sum); - sum += result; - result = sum; + std::string temp; + temp = std::to_string(sum); + temp += result; + result = temp; carry = (firstBit&secondBit) | (secondBit&carry) | (firstBit&carry); // sum of 3 bits }