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

Chương trình tìm phần dư khi số lớn bị chia cho r trong C ++

Trong bài toán này, chúng ta được cung cấp một chuỗi num là một số lớn và một số nguyên R. Nhiệm vụ của chúng ta là tạo một chương trình tìm phần dư khi số nhỏ được chia cho r trong C ++ .

Mô tả sự cố - Ta cần tìm số dư khi số được xác định bởi chuỗi chia cho r là số có hai chữ số.

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

Đầu vào

num = “123423450942121” r = 54

Đầu ra

7

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

Để tìm phần dư, rõ ràng chúng ta cần chia số. Nhưng phép chia số là một quá trình phức tạp nên để dễ dàng hơn, chúng ta sẽ chia cho từng chữ số. Và lưu trữ phần còn lại sau đó. Quá trình này sẽ được tiếp tục cho toàn bộ chuỗi có chứa số từ MSB đến LSB. Và cuối cùng phần còn lại được in.

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