Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm phần còn lại mà không sử dụng toán tử modulo hoặc% trong C ++

Trong bài toán này, chúng ta được cung cấp hai số, N và D. Nhiệm vụ của chúng ta là tạo một Chương trình tìm phần dư mà không sử dụng toán tử modulo hoặc% trong C ++ .

Mô tả sự cố - Chúng ta cần tìm phần dư sẽ còn lại sau khi chia số N cho D. Nhưng chúng ta không thể sử dụng toán tử modulo hoặc% cho việc này.

Hãy lấy một ví dụ để hiểu vấn đề

Đầu vào

N = 53 D = 3

Đầu ra

2

Phương pháp tiếp cận giải pháp

Để tìm phần còn lại, một cách tiếp cận đơn giản là tìm số nhỏ hơn N mà là bội số của D. Và cơ chất là số từ N. Để trả về phần còn lại.

Chương trình minh họa hoạt động của giải pháp của chúng tôi

Ví dụ

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

Đầu ra

The remainder after dividing 45 by 6 is 3

Một giải pháp khác là sử dụng giá trị nguyên của thương số của phép chia mà có thể được trích xuất trực tiếp bằng cách khởi tạo nó thành giá trị int trong C ++. Sau đó, nhân nó với D. Và trừ giá trị của N cho phần còn lại.

Chương trình minh họa giải pháp của chúng tôi đang hoạt động

Ví dụ

#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