ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีหารตัวเลขจำนวนมากที่แสดงเป็นสตริง
เราได้ให้จำนวนมากในรูปแบบสตริงและตัวหาร โปรแกรมของเราน่าจะหาข้อเตือนใจได้
อันดับแรก เราจะหาส่วนของตัวเลขที่ให้มาซึ่งมากกว่าเงินปันผล จากนั้นเราจะบวกตัวเลขที่เหลือทีละตัวในตัวหาร
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นจำนวนมากพร้อมกับตัวหาร
-
วนซ้ำตัวเลขที่กำหนดจนกว่าเราจะแยกส่วนที่มากกว่าตัวหารออก
-
ตอนนี้ วนซ้ำจากจุดที่เราทิ้งไว้ในขั้นตอนก่อนหน้าจนถึงจุดสิ้นสุดของตัวเลข
-
แบ่งส่วนที่แยกออกมาด้วยตัวหารแล้วบวกเข้ากับผลลัพธ์
-
อัพเดทเลขตัวถัดไป
-
-
ตรวจสอบว่าผลลัพธ์เป็นศูนย์หรือไม่
-
แล้วพิมพ์ผลออกมา
ตัวอย่าง
มาดูโค้ดกันเลย
#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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น