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