Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm giá trị của (n ^ 1 + n ^ 2 + n ^ 3 + n ^ 4) mod 5 cho n đã cho trong C ++

Trong bài toán này, chúng ta được cho một giá trị n. Nhiệm vụ của chúng ta là tìm giá trị của (n ^ 1 + n ^ 2 + n ^ 3 + n ^ 4) mod 5 cho n đã cho .

Hãy lấy một ví dụ để hiểu vấn đề,

Input : n= 5
Output : 0

Giải thích -

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

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là tìm trực tiếp giá trị của phương trình với giá trị đã cho của N và sau đó tính môđun của nó với 5.

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#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;
}

Đầu ra

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

Một giải pháp khác cho vấn đề là sử dụng công thức toán học và tổng quát hóa của hàm.

$ \ 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)} $

Đối với phương trình này, chúng ta có thể suy ra rằng giá trị của f (n)% 5 có thể là 0 hoặc 4 dựa trên giá trị của n.

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

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#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;
}

Đầu ra

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