C++程式中將大數表示為字串的除法


在本教程中,我們將學習如何對錶示為字串的大數進行除法。

我們得到了以字串格式表示的大數和一個除數。我們的程式應該找到餘數。

首先,我們將找到給定數字中大於被除數的部分。然後,我們將逐個將剩餘的數字新增到除數。

讓我們看看解決問題的步驟。

  • 初始化大數以及除數。

  • 迭代給定的數字,直到我們提取大於除數的部分。

  • 現在,從我們在上一步結束的地方迭代到數字的末尾。

    • 將提取的部分除以除數並將其新增到結果中。

    • 使用下一個數字更新數字。

  • 檢查結果是否為零。

  • 並列印結果。

示例

讓我們看看程式碼。

 線上演示

#include <bits/stdc++.h>
using namespace std;
string divideLargeNumber(string number, int divisor) {
   // to store the result
   string result;
   int index = 0;
   // extracting the part that is greater than the given divisor
   int dividend = number[index] - '0';
   while (dividend < divisor) {
      dividend = dividend * 10 + (number[++index] - '0');
   }
   // iterating until all digits participate in the division
   while (number.size() > index) {
      result += (dividend / divisor) + '0';
      // adding the next digit to the dividend
      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

結論

如果您在本教程中遇到任何疑問,請在評論部分提出。

更新於:2021年1月27日

3000+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.