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

Chương trình tìm phần dư khi số lớn chia hết cho 11 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. Nhiệm vụ của chúng ta là tạo một chương trình để tìm phần dư khi số lớn bị chia cho 11in C ++.

Mô tả sự cố - Chúng ta cần tìm phần dư khi số được xác định bởi chuỗi chia cho 11.

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

Đầu vào

num = “43212981843718452”

Đầ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 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 currDigit, rem = 0;
   for (int i = 0; i < num.length(); i++) {
      currDigit = rem * 10 + (num[i] - '0');
      rem = currDigit % 11;
   }
   return rem;
}
int main() {
   string num = "43212981843718452";
   cout<<"The remainder when large number is divided by 11 is"<<calcRem(num);
   return 0;
}

Đầu ra

The remainder when large number is divided by 11 is 7