Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 (1^n + 2^n + 3^n + 4^n) 모드 5 찾기

<시간/>

이 튜토리얼에서는 다음 문제를 해결할 것입니다.

정수 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번째 숫자마다 반복된다는 것을 알 수 있습니다. 방정식의 주기성입니다.

실제로 방정식을 계산하지 않고 다음과 같이 말할 수 있습니다.

if n%4==0 then (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

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.