Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หา (1^n + 2^n + 3^n + 4^n) mod 5 ใน C++

ในบทช่วยสอนนี้ เราจะแก้ปัญหาต่อไปนี้

ได้รับจำนวนเต็ม n เราต้องหา (1n + 2n + 3n + 4n) % 5

ตัวเลข (1n + 2n + 3n + 4n) จะใหญ่มากถ้า n ใหญ่ มันไม่สามารถใส่ใน long integers ได้เช่นกัน ดังนั้นเราต้องหาวิธีแก้ปัญหาแบบอื่น

ถ้าคุณแก้สมการสำหรับตัวเลข 1, 2, 3, 4, 5, 6, 7, 8, 9 คุณจะได้ 10, 30, 100, 354, 1300, 4890, 18700, 72354, 282340 ตามลำดับ

สังเกตผลลัพธ์ของสมการอย่างละเอียด คุณจะพบว่าตัวเลขหลักสุดท้ายของผลลัพธ์สมการซ้ำกันทุก 4 ตัวเลข นี่คือ periodicity ของสมการ

โดยไม่ต้องคำนวณสมการจริง เราสามารถบอกได้ว่า

ถ้า n % 4 == 0 แล้ว (1n + 2n + 3n + 4n) % 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

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น