fork download
  1. // C++ program to implement division with large
  2. // number
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. // A function to perform division of large numbers
  7. string longDivision(string number, int divisor)
  8. {
  9. // As result can be very large store it in string
  10. string ans;
  11.  
  12. // Find prefix of number that is larger
  13. // than divisor.
  14. int idx = 0;
  15. int temp = number[idx] - '0';
  16. while (temp < divisor)
  17. temp = temp * 10 + (number[++idx] - '0');
  18.  
  19. // Repeatedly divide divisor with temp. After
  20. // every division, update temp to include one
  21. // more digit.
  22. while (number.size() > idx)
  23. {
  24. // Store result in answer i.e. temp / divisor
  25. ans += (temp / divisor) + '0';
  26.  
  27. // Take next digit of number
  28. temp = (temp % divisor) * 10 + number[++idx] - '0';
  29. }
  30.  
  31. // If divisor is greater than number
  32. if (ans.length() == 0)
  33. return "0";
  34.  
  35. // else return ans
  36. return ans;
  37. }
  38.  
  39. // Driver program to test longDivison()
  40. int main()
  41. {
  42. string number = "1248163264128256512";
  43. int divisor = 125;
  44. cout << longDivision(number, divisor);
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 4480KB
stdin
Standard input is empty
stdout
9985306113026052