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