C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

最初のN個の自然数C++の適切な順列を見つける


この問題では、私たちは整数値Nです。私たちのタスクは最初のN個の自然数の適切な順列を見つけることです

順列は、配置の順序に関して、オブジェクトのセットのすべてまたは一部の配置です。

適切な順列 は$1\ leqslant {i} \ leqslant{N}$とそれに続く順列です

$ P_ {pi} \:=\:i $

$ P_ {p!} \:=\:i $

問題を理解するために例を見てみましょう

Input : N = 1
Output : -1

ソリューションアプローチ

この問題の簡単な解決策は、順列を見つけることです。 p iとなるようなp =i。

次に、p iを満たす方程式を再検討します。 !=i。したがって、$ 2x \ leqslant x $のような値xの場合、p 2x-1 になります。 およびp 2k 。これで、nの順列方程式を満たす方程式ができました。ここで、方程式の解。


ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
void printGoodPermutation(int n) {
   if (n % 2 != 0)
      cout<<-1;
   else
      for (int i = 1; i <= n / 2; i++)
         cout<<(2*i)<<"\t"<<((2*i) - 1)<<"\t";
}
int main() {
   int n = 4;
   cout<<"Good Permutation of first N natural Numbers : \n"; printGoodPermutation(n);
   return 0;
}

出力

Good Permutation of first N natural Numbers :
2 1 4 3

  1. C++の最初のn個の自然数の合計の合計

    この問題では、最初のn個の自然数の合計を見つけるために、1からnまでのすべての数の合計を見つけ、それらを合計して合計を求めます。 例を見て、概念について学びましょう。 Input : 4 Output : 10 Explanation : Sum of first 1 natural number = 1 Sum of first 2 natural number = 1 + 2 = 3 Sum of first 3 natural number = 1 + 2 +3 = 6 Sum of first 4 natural number = 1 + 2 + 3 + 4 = 10 Sum of

  2. 数値の配列の積の最初の桁を見つけるC++プログラム

    この記事では、指定された配列の要素の積の最初の桁を見つけるプログラムについて説明します。 たとえば、配列が与えられたとしましょう。 arr = {12, 5, 16} その場合、これらの要素の積は12 * 5 * 16 =960になります。したがって、結果、つまりこの場合の積の最初の桁は9になります。 例 #include <bits/stdc++.h> using namespace std; int calc_1digit(int arr[], int x) {    long long int prod = 1;    for(in