在 C++ 中,給定 n,求 (n^1 + n^2 + n^3 + n^4) mod 5 的值。


在這個問題中,我們給定一個值 n。我們的任務是*找到給定 n 的 (n^1 + n^2 + n^3 + n^4) mod 5 的值*。

讓我們舉個例子來理解這個問題,

Input : n= 5
Output : 0

**解釋** -

(51 + 52 + 53 + 54) mod 5
= (5 + 25 + 125 + 625) mod 5
= (780) mode 5 = 0

解決方法

解決這個問題的一個簡單方法是直接根據給定的 N 值計算方程的值,然後計算其對 5 的模。

示例

程式說明我們解決方案的工作原理

#include <iostream>
using namespace std;
int findMod5Val(int n){
   int val = (n + (n*n) + (n*n*n) + (n*n*n*n));
   return val%5;
}
int main(){
   int n = 12;
   cout<<"For N = "<<n<<", the value of (n^1 + n^2 + n^3 + n^4)\%5 is "<<findMod5Val(n);
   return 0;
}

輸出

For N = 12, the value of (n^1 + n^2 + n^3 + n^4)%5 is 0

解決這個問題的另一種方法是使用數學公式和函式的泛化。

$\mathrm{f(n)\:=\:(n\:+\:n^2\:+\:n^3\:+\:n^4)}$

$\mathrm{f(n)\:=\:n^*(1\:+\:n\:+\:n^2\:+\:n^3)}$

$\mathrm{f(n)\:=\:n^*(1^*(1+n)+n^{2*}(1+n))}$

$\mathrm{f(n)\:=\:n^*((1+n^2)^*(1+n))}$

$\mathrm{f(n)\:=\:n^*(n+1)^*(n^2+1)}$

對於這個等式,我們可以推匯出 f(n) % 5 的值基於 n 的值可以是 0 或 4。

if(n%5 == 1),
   f(n)%5 = 4
Else,
   f(n)%5 = 0

示例

程式說明我們解決方案的工作原理

#include <iostream>
using namespace std;
int findMod5Val(int n){
   if(n % 4 == 1)
      return 4;
   return 0;
}
int main(){
   int n = 65;
   cout<<"For N = "<<n<<", the value of (n^1 + n^2 + n^3 + n^4)\%5 is "<<findMod5Val(n);
   return 0;
}

輸出

For N = 65, the value of (n^1 + n^2 + n^3 + n^4)%5 is 4

更新於: 2022-02-01

170 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告