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

Tìm phần dư không dùng toán tử % trong C++

Cho hai số N và D. Tìm phần dư khi chia N cho D mà không dùng toán tử modulo (%).

Ví dụ

Input: N = 53, D = 3

Output: 2

Phương pháp 1: Tìm bội số gần nhất

Tìm i sao cho D*i >= N, phần dư = N - D*(i-1).

Phương pháp 2: Sử dụng chia nguyên

Q = N / D (chia nguyên), R = N - D * Q.

Ví dụ minh họa (C++) - Phương pháp 1

#include <iostream>
using namespace std;

int findRem(int N, int D) {
    int i;
    for(i = 0; ; i++) {
        if(D * i >= N) break;
    }
    return N - (D * (i-1));
}

int main() {
    int N = 45, D = 6;
    cout << "The remainder after dividing " << N << " by " << D << " is " << findRem(N, D);
    return 0;
}

Ví dụ minh họa (C++) - Phương pháp 2

#include <iostream>
using namespace std;

int findRem(int N, int D) {
    int Q = N / D;
    int R = N - (D * Q);
    return R;
}

int main() {
    int N = 45, D = 6;
    cout << "The remainder after dividing " << N << " by " << D << " is " << findRem(N, D);
    return 0;
}

Đầu ra

The remainder after dividing 45 by 6 is 3