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

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


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

จากจำนวนเต็ม 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น