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