정수 변수가 주어지면 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.Explanation
Explanation 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"만큼 떨어져 있도록 배열됩니다.
Input− int n = 10, int k = 3
Input − int n = 10, int k = 3
Input p> Output- 첫 번째 N 숫자를 재정렬하여 K 거리: 불가능 설명 - 정수 변수 '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가 크기보다 작아질 때까지 i에서 1까지 FOR 반복을 시작하고 i를 1씩 증가시킨 다음 i를 인쇄합니다. IF temp가 0이 아닌지 확인한 다음 NOT POSSIBLE을 인쇄합니다. i가 i가 n보다 작을 때까지 i에서 1까지 FOR 루프를 시작하고 i를 i + 2 * k로 설정합니다. 루프 내에서 j가 k보다 작을 때까지 j에서 1까지 FOR 다른 루프를 시작하고 j를 1씩 증가시킵니다. 루프 내에서 ptr[i + j -1] 및 ptr[k + i + 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;
}
Output
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!