ในบทช่วยสอนนี้ เราจะแก้ไขปัญหาต่อไปนี้
จากจำนวนเต็ม n เราต้องหา (1 n +2 n +3 n +4 n )%5
ตัวเลข (1 n +2 n +3 n +4 n ) จะใหญ่มากถ้า n มีขนาดใหญ่ ไม่สามารถใส่ลงในจำนวนเต็มยาวได้เช่นกัน เลยต้องหาทางแก้ไข
หากคุณแก้สมการของตัวเลข 1, 2, 3, 4, 5, 6, 7, 8, 9 คุณจะได้ 10, 30, 100, 354, 1300, 4890, 18700, 72354, 282340 ตามลำดับพี>
สังเกตผลลัพธ์ของสมการอย่างระมัดระวัง คุณจะพบว่าตัวเลขสุดท้ายของผลลัพธ์สมการจะซ้ำกันทุก ๆ ตัวเลขที่ 4 มันคือคาบของสมการ
โดยไม่ต้องคำนวณสมการจริงๆ เราสามารถพูดได้ว่า
ถ้า n%4==0 แล้ว (1 n +2 n +3 n +4 n )%5 จะเป็น 4 อื่นๆ 0 .
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h> using namespace std; int findSequenceMod5(int n) { return (n % 4) ? 0 : 4; } int main() { int n = 343; cout << findSequenceMod5(n) << endl; return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
0
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น