Я создал алгоритм деления в столбик на C++, но не могу понять, как правильно разместить десятичную точку. Я начинаю думать, что мне нужно переделать алгоритм.
Я создал алгоритм деления в столбик на C++, но не могу понять, как правильно разместить десятичную точку. Я начинаю думать, что мне нужно переделать алгоритм. [code]std::string LoneFunctions::divideDecimalStrings(const std::string& num1, const std::string& num2, int precision) { int stringDP1 = LoneFunctions::findCh('.',num1); int stringDP2 = LoneFunctions::findCh('.',num2);
std::string result; std::string current = ""; std::string temp = ""; std::string tempB = ""; std::string quotient = ""; int numOfDigits = 0; int n = usedString1.size(); for(int i = 0; i < n; ++i) { current = usedString2; temp += usedString1[i]; int count = 0; while (LoneFunctions::compareStrings(temp, current) || LoneFunctions::isEqual(temp,current)) { temp = subtractStrings(temp,current); count++; } quotient += std::to_string(count); numOfDigits++; } if (precision > 0) { for (int i = 0; i < precision; ++i) { temp += '0'; while (temp.size() > 1 && temp[0] == '0') temp.erase(0, 1); while (quotient.size() > 1 && quotient[0] == '0') quotient.erase(0, 1); int count = 0; while (compareStrings(temp, usedString2) || isEqual(temp, usedString2)) { temp = subtractStrings(temp, usedString2); ++count; } result += std::to_string(count); } }
quotient += result;
return quotient;
} [/code] Это была одна из моих попыток заставить это работать, но она не сработает из-за ведущих нулей и особенностей работы этого алгоритма. [code]if (numDecimals > 0) { quotient.insert(quotient.size() - precision - numDecimals, 1, '.'); } [/code]