Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หารตัวเลขจำนวนมากที่แสดงเป็นสตริงใน C++ Program


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีหารตัวเลขจำนวนมากที่แสดงเป็นสตริง

เราได้ให้จำนวนมากในรูปแบบสตริงและตัวหาร โปรแกรมของเราน่าจะหาข้อเตือนใจได้

อันดับแรก เราจะหาส่วนของตัวเลขที่ให้มาซึ่งมากกว่าเงินปันผล จากนั้นเราจะบวกตัวเลขที่เหลือทีละตัวในตัวหาร

มาดูขั้นตอนการแก้ปัญหากัน

  • เริ่มต้นจำนวนมากพร้อมกับตัวหาร

  • วนซ้ำตัวเลขที่กำหนดจนกว่าเราจะแยกส่วนที่มากกว่าตัวหารออก

  • ตอนนี้ วนซ้ำจากจุดที่เราทิ้งไว้ในขั้นตอนก่อนหน้าจนถึงจุดสิ้นสุดของตัวเลข

    • แบ่งส่วนที่แยกออกมาด้วยตัวหารแล้วบวกเข้ากับผลลัพธ์

    • อัพเดทเลขตัวถัดไป

  • ตรวจสอบว่าผลลัพธ์เป็นศูนย์หรือไม่

  • แล้วพิมพ์ผลออกมา

ตัวอย่าง

มาดูโค้ดกันเลย

#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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น