ในปัญหานี้ เราได้รับสตริงที่แสดงถึงจำนวนเต็มขนาดใหญ่ งานของเราคือหา N % (ส่วนที่เหลือมี 4) สำหรับค่า N.
คำอธิบายปัญหา − เราจะหาจำนวนที่เหลือด้วย 4
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
num = 453425245
ผลลัพธ์
1
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาอย่างง่ายคือการใช้ข้อเท็จจริงที่ว่าตัวเลขที่เหลือที่มี 4 สามารถพบได้โดยใช้ตัวเลขสองหลักสุดท้ายของตัวเลข ดังนั้น สำหรับจำนวนที่มาก เราสามารถหาเศษที่เหลือโดยการหารเลขสองหลักสุดท้ายของตัวเลขด้วย 4
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#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;
} ผลลัพธ์
The remainder of the number with 4 is 1