C++で指定された条件を満たす最初のN個の自然数の順列を見つけます
2つの整数NとKがあり、すべての1 <=iに対してGCD(P [i]、i)> 1の条件を満たすK個の要素が正確に存在するように、最初のN個の自然数の順列Pを見つける必要があるとします。 <=N。したがって、N=3およびK=1の場合、出力は2、1、3になります。gcd(2、1)=1、gcd(1、2)=1、gcd(3、3)=3
アプローチは単純です。最後のk個の要素をその場所に保持し、残りの要素を移動して、i番目の要素が(i + 1)番目の位置に配置され、(N-K)番目の要素が保持されるようにします。 gcd(x、x + 1)=1であるため、位置1。
例
#include<iostream> using namespace std; void findPermutation(int n, int k) { int permutation[n + 1]; for (int i = 1; i <= n; i++) permutation[i] = i; for (int i = 1; i < n - k; i++) permutation[i + 1] = i; permutation[1] = n - k; for (int i = 1; i <= n; i++) cout << permutation[i] << " "; } int main() { int n = 5, k = 2; cout << "The permutation is: "; findPermutation(n, k); }
出力
The permutation is: 3 1 2 4 5
-
偶数である最初のn個の自然数の平均を見つけるPHPプログラム
偶数である最初のn個の自然数の平均を見つけるためのコードは次のとおりです- 例 <?php function even_nums_avg($val) { return $val + 1; } $val = 11; print_r("The average of the first n natural numbers that are even is "); echo(even_nums_avg($val)); ?> 出力 The average of the first n natural numbers that are even i
-
Pythonで中央値がMになるように、最初のN個の自然数の順列でサブ配列の数を見つけます
最初のN個の自然数の順列を含む配列Aがあり、別の数Mも与えられていると仮定します。ここで、M≤Nの場合、次のようなサブ配列の数を見つける必要があります。シーケンスの中央値はMです。ご存知のように、シーケンスの中央値は、昇順で並べ替えた後のシーケンスの中央にある要素の値として定義されます。偶数の長さのシーケンスでは、2つの中央の要素の左側が使用されます。 したがって、入力がA =[3、5、6、4、2]およびM =5の場合、必要なサブ配列は[3、5、6]、[5]、[5]であるため、出力は4になります。 、6]および[5、6、4]。 これを解決するには、次の手順に従います- n:=arrのサ