在本教程中,我们将学习如何对表示为字符串的大量数字进行除法。
我们以字符串格式和除数给出了大量数字。我们的程序应该会提醒您。
首先,我们将找到给定数字中大于红利的部分。然后,我们将剩余的数字一一添加到除数。
让我们看看解决问题的步骤。
初始化大数和除数。
迭代给定的数字,直到提取出大于除数的部分。
现在,从我们在上一步中离开的位置进行迭代,直到数字的结尾。
将提取的部分除以除数,然后将其添加到结果中。
用下一位数字更新数字。
检查结果是否为零。
并打印结果。
让我们看一下代码。
#include <bits/stdc++.h> using namespace std; string divideLargeNumber(string number, int divisor) { // 存储结果 string result; int index = 0; // 提取大于给定除数的部分 int dividend = number[index] - '0'; while (dividend < divisor) { dividend = dividend * 10 + (number[++index] - '0'); } // 迭代直到所有数字都参与除法 while (number.size() > index) { result += (dividend / divisor) + '0'; // 将下一位数字加到股息中 dividend = (dividend % divisor) * 10 + number[++index] - '0'; } if (result.length() == 0) { return "0"; } return result; } int main() { string large_number = "12345678901234567890"; int divisor = 75; cout << divideLargeNumber(large_number, divisor) << endl; return 0; }输出结果
如果执行上述程序,则将得到以下结果。
164609052016460905