ในปัญหานี้ เราได้รับสตริงที่แสดงถึงจำนวนเต็มขนาดใหญ่ งานของเราคือหา 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