Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần dư số lớn chia cho r trong C++

Cho chuỗi num đại diện cho số lớn và số nguyên R. Tìm phần dư khi chia số lớn cho R.

Ví dụ

Input: num = "123423450942121", r = 54

Output: 7

Phương pháp giải

Xử lý từng chữ số từ trái sang phải (MSB đến LSB). Với mỗi chữ số: currDigit = rem * 10 + (num[i] - '0'), rem = currDigit % R. Cuối cùng rem là phần dư.

Ví dụ minh họa (C++)

#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;
}

Đầu ra

The remainder when large number is divided by r is 7