ในปัญหานี้ เราได้รับสตริงที่เป็นตัวเลขจำนวนมาก งานของเราคือสร้างโปรแกรมเพื่อค้นหาส่วนที่เหลือเมื่อหารจำนวนมากด้วย 11 ใน C++
คำอธิบายปัญหา − เราต้องหาส่วนที่เหลือเมื่อจำนวนที่กำหนดโดยสตริงหารด้วย 11
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
num = “43212981843718452”
ผลลัพธ์
7
แนวทางการแก้ปัญหา
ในการหาเศษที่เหลือ เราต้องหารจำนวนนั้นอย่างชัดเจน แต่การหารจำนวนมหาศาลนั้นเป็นกระบวนการที่ซับซ้อน ดังนั้นเพื่อให้กระบวนการง่ายขึ้น เราจะหารหลักด้วยหลัก และเก็บส่วนที่เหลือที่ตามมา กระบวนการนี้จะดำเนินต่อไปสำหรับทั้งสตริงที่มีตัวเลขจาก MSB ถึง LSB และสุดท้ายก็พิมพ์ส่วนที่เหลือ
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num){
int currDigit, rem = 0;
for (int i = 0; i < num.length(); i++) {
currDigit = rem * 10 + (num[i] - '0');
rem = currDigit % 11;
}
return rem;
}
int main() {
string num = "43212981843718452";
cout<<"The remainder when large number is divided by 11 is"<<calcRem(num);
return 0;
} ผลลัพธ์
The remainder when large number is divided by 11 is 7