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

โปรแกรมหาเศษเมื่อหารด้วย r จำนวนมากใน C++


ในปัญหานี้ เราได้รับสตริง num ซึ่งเป็นตัวเลขจำนวนมากและจำนวนเต็ม R หน้าที่ของเราคือสร้าง โปรแกรมเพื่อค้นหาเศษที่เหลือเมื่อจำนวนมากหารด้วย r ใน C++ .

คำอธิบายปัญหา − เราต้องหาเศษที่เหลือเมื่อตัวเลขที่กำหนดโดยสตริงหารด้วย r ซึ่งเป็นตัวเลขสองหลัก

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

num = “123423450942121” r = 54

ผลลัพธ์

7

แนวทางการแก้ปัญหา

ในการหาเศษที่เหลือ เราต้องหารจำนวนนั้นอย่างชัดเจน แต่การหารจำนวนมหาศาลนั้นเป็นกระบวนการที่ซับซ้อน ดังนั้นเพื่อให้กระบวนการง่ายขึ้น เราจะทำการหารหลักด้วยหลัก และเก็บส่วนที่เหลือที่ตามมา กระบวนการนี้จะดำเนินต่อไปสำหรับทั้งสตริงที่มีตัวเลขจาก MSB ถึง LSB และสุดท้ายก็พิมพ์ส่วนที่เหลือ

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num, int R){
   int currDigit, rem = 0;
   for (int i = 0; i < num.length(); i++) {
      currDigit = rem * 10 + (num[i] - '0');
      rem = currDigit % R;
   }
   return rem;
}
int main() {
   string num = "123423450942121";
   int R = 54;
   cout<<"The remainder when large number is divided by r is"<<calcRem(num, R);
   return 0;
}

ผลลัพธ์

The remainder when large number is divided by r is 7