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

Tìm N% (Phần dư với 4) cho giá trị lớn của N trong C ++

Trong bài toán này, chúng ta được cung cấp một chuỗi num đại diện cho một số nguyên lớn. Ourtask là Tìm N% (Phần dư với 4) cho một giá trị lớn của N.

Mô tả sự cố - chúng ta sẽ tìm phần còn lại của số có 4.

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

Đầu vào

num = 453425245

Đầu ra

1

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

Một giải pháp đơn giản cho vấn đề là sử dụng thực tế rằng phần dư của số với 4 có thể được tìm thấy bằng cách sử dụng hai chữ số cuối cùng của số đó. Vì vậy, đối với bất kỳ số lớn nào, chúng ta có thể tìm phần còn lại bằng cách chia hai chữ số cuối cùng của số đó cho 4.

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 <bits/stdc++.h>
using namespace std;
int calc4Mod(string num, int len) {
   int rem;
   if (len == 1)
      rem = num[0] - '0';
   else
      rem = (num[len - 2] - '0') * 10 + num[len - 1] - '0';
      return (rem % 4);
}
int main() {
   string num = "84525765476513";
   int len = num.length();
   cout<<"The remainder of the number with 4 is "<<calc4Mod(num, len);
   return 0;
}

Đầu ra

The remainder of the number with 4 is 1