//Multiply two strings representing decimal values std::string decimalMul(std::string a, std::string b) { std::string o = "0"; for (unsigned i = 0; i < b.length(); i++) { std::string n = decimalDigitMul(a, b[i] - '0'); if (n != "0") { for (unsigned j = i + 1; j < b.length(); j++) n += "0"; } o = decimalAdd(o, n); } return o; }
//Helper function for decimalMul std::string decimalDigitMul(std::string a, int dig) { if (dig == 0) return "0"; else return decimalAdd(a, decimalDigitMul(a, dig - 1)); }
//Helper function for decimalMul static std::string decimalDigitMul(const std::string &a, int dig) { if (dig == 0) return "0"; else return decimalAdd(a, decimalDigitMul(a, dig - 1)); }