整数変数、たとえば N と K を与えます。タスクは、まず N の順列を計算し、次に各要素から距離 K になるように順列を再配置することです。
さまざまな入出力シナリオを見てみましょう -input- int n = 20, int k = 2
output
strong>− 最初の N 数値を K 距離になるように並べ替えます: 3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18。説明
説明 strong>- 整数変数「N」つまり 20 と「K」つまり 2 が与えられます。次に、「N」、つまり 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20 の順列を計算します。 。 ここで私たちは 要素は、すべての要素が各要素から「k」離れるように配置されます。
入力- int n = 10、int k = 3
入力- int n = 10、int k = 3
入力 p> 出力 - K 距離になるように最初の N 数値を並べ替えます: 不可能です 説明 - を与えます。整数変数「N」は 10、「K」は 3 です。次に、「N」、つまり 1、2、3、4、5、6、7、8、9、10 の順列を計算します。ここで、すべての要素が各要素から「k」距離離れて配置されるように要素を配置しますが、指定された入力値ではそれは不可能です。 整数型の要素、つまり 'N' と 'K' を入力します。 N と K を関数にパラメータとして渡して、関数 Rearrangement(int n, int k) を呼び出します。 内部関数 Rearrangement(int n, int k) 整数変数を temp として宣言し、それを n % (2 * k) に設定します)。 整数配列をサイズ n の ptr 1、つまり prt[n 1] として宣言します。 IF k = 0 を確認し、i が size 未満になるまで i から 1 まで FOR のループを開始し、i を 1 増やして i を出力します。 IF temp が 0 に等しくないことを確認し、NOT POSSIBLE を出力します。 i が未満になるまで i から 1 まで FOR ループを開始します。 i が未満になるまで i から 1 まで FOR ループを開始しますn を設定し、i を i 2 * k に設定します。ループ内で、j が k 未満になるまで j から 1 への別のループ FOR を開始し、j を 1 ずつインクリメントします。ループ内では、ptr[i j -1] と ptr[ki j - 1] を引数として渡すことによって swa メソッドが呼び出されます。 i が N 未満になるまで i から 1 まで FOR ループを開始し、i を 1 ずつインクリメントします。 prt[i] を印刷します。 次のプログラムで使用するメソッドは次のとおりです。
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int n, int k){
int temp = n % (2 * k);
int ptr[n + 1];
if(k == 0){
for(int i = 1; i <= n; i++){
cout << i << " ";
}
return;
}
if(temp != 0){
cout<<"Not Possible";
return;
}
for(int i = 1; i <= n; i++){
ptr[i] = i;
}
for(int i = 1; i <= n; i += 2 * k){
for(int j = 1; j <= k; j++){
swap(ptr[i + j - 1], ptr[k + i + j - 1]);
}
}
for(int i = 1; i <= n; i++){
cout << ptr[i] << " ";
}
}
int main(){
int n = 20;
int k = 2;
cout<<"Rearrangement of first N numbers to make them at K distance is: ";
Rearrangement(n, k);
return 0;
}
Rearrangement of first N numbers to make them at K distance is: 3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18
以上がC++ で最初の N 個の数値を K 個の距離だけ離れるように並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。