C ++で指定されたnの(n ^ 1 + n ^ 2 + n ^ 3 + n ^ 4)mod5の値を検索します
この問題では、値nが与えられます。私たちのタスクは、指定されたnの(n ^ 1 + n ^ 2 + n ^ 3 + n ^ 4)mod5の値を見つけることです 。
問題を理解するために例を見てみましょう
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
この問題のもう1つの解決策は、関数の数学的定式化と一般化を使用することです。
$ \ 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
-
C++で特定のポイントセットの単純な閉じたパスを検索します
一連のポイントがあると考えてください。すべてのポイントをカバーする単純な閉じたパスを見つける必要があります。ポイントが以下のようであり、次の画像がそれらのポイント上で閉じたパスを作成していると仮定します。 パスを取得するには、次の手順に従う必要があります- 左下の点をPとして見つけます Pを中心に反時計回りに極角に基づいて他のn– 1点を並べ替えます。2点の極角が同じである場合は、距離が最短になるように配置します。 ソートされたポイントのリストをトラバースし、パスを作成します 例 #include <bits/stdc++.h> using names
-
KのKの値を見つけるプログラム-C++の類似した文字列
2つの文字列sとtがあるとします。これらの2つの文字列は、s内の2つの文字の位置を正確にK回入れ替えて、結果の文字列がtになる場合、Kに似ています。 2つのアナグラムsとtがあり、sとtがKに類似している最小のKを見つける必要があります。 したがって、入力がs =abc、t =bacの場合、出力は1になります。 これを解決するには、次の手順に従います- 関数swapp()を定義します。これには、文字列s、i、j、が必要です。 x:=s [i]、y:=s [j] s [i]:=y、s [j]:=x メインの方法から、次のようにします- AがBと同じ場合、:、