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

โปรแกรมหาเศษเมื่อตัวเลขใหญ่ถูกหารด้วย r ใน C++

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

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

ตัวอย่างเพื่อความเข้าใจ

อินพุต

num = "123423450942121" r = 54

เอาต์พุต

7

วิธีแก้ปัญหา

เพื่อหาเศษ เราจะต้องหารตัวเลข แต่อาการหารตัวเลขขนาดใหญ่เป็นกระบวนการซับซ้อน เพื่อให้ง่ายขึ้น เราจะหารทีละหลัก (digit by digit) และเก็บเศษที่ตามมา กระบวนการนี้ทำต่อเนื่องสำหรับสตริงทั้งหมดที่มีตัวเลขจาก 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