Rumah > pembangunan bahagian belakang > C++ > Susun semula nombor N pertama supaya jaraknya K dalam C++

Susun semula nombor N pertama supaya jaraknya K dalam C++

王林
Lepaskan: 2023-09-11 15:13:10
ke hadapan
1018 orang telah melayarinya

在 C++ 中重新排列前 N 个数字,使它们处于 K 距离

Diberi pembolehubah integer, katakan N dan K. Tugasnya adalah untuk terlebih dahulu mengira pilih atur N dan kemudian menyusun semula pilih atur supaya ia adalah jarak K dari setiap elemen.

Mari kita lihat pelbagai senario input dan output -

Input- int n = 20, int k = 2

Output

kuat>− Susun semula nombor N pertama supaya berada pada jarak K 4: 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18.

Penjelasan

Penjelasan strong>− Kami diberi pembolehubah integer 'N' iaitu 20 dan 'K' iaitu 2. Sekarang kita akan mengira pilih atur 'N' iaitu 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18. 19, 20 Sekarang kita Unsur-unsur akan disusun sedemikian rupa sehingga semua elemen berada "k" dari setiap elemen.

Input− int n = 10, int k = 3

Input − int n = 10, int k = 3

Input p>

Susun semula nombor yang pertama Jarak K: Mustahil

Penjelasan - Kami diberi pembolehubah integer 'N' iaitu 10 dan 'K' iaitu 3. Sekarang kita akan mengira pilih atur 'N' iaitu 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Sekarang, kami akan menyusun elemen sedemikian rupa sehingga semua elemen berada dalam jarak "k" dari setiap elemen, tetapi itu tidak mungkin untuk nilai input yang diberikan.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

  • Masukkan elemen jenis integer, iaitu 'N' dan 'K'.

  • Panggil fungsi Susunan Semula(int n, int k) dengan menghantar N dan K sebagai parameter kepada fungsi.

  • Di dalam fungsi Penyusunan Semula(int n, int k)

    • mengisytiharkan pembolehubah integer sebagai temp dan menetapkannya kepada n % (2 * k).

    • Isytihar tatasusunan integer sebagai ptr 1 saiz n +, iaitu, prt[n+1]. .

    • Mulakan gelung FOR dari i ke 1 sehingga i kurang daripada

    • Mulakan gelung FOR dari i ke 1 sehingga i kurang daripada n dan tetapkan i kepada i + 2 * k. Di dalam gelung, mulakan gelung lain FOR dari j hingga 1 sehingga j kurang daripada k dan tambah j sebanyak 1. Di dalam gelung, kaedah swa dipanggil dengan menghantar ptr[i + j -1] dan ptr[k + i + j - 1] sebagai argumen.

    • Mulakan gelung FOR dari i ke 1 sehingga i kurang daripada N dan tambahkan i sebanyak 1.

    • Cetak prt[i].

    • Cetak hasilnya.
    • Contoh
  • #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;
    }
    Salin selepas log masuk
Output
  • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut

    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
    Salin selepas log masuk

    Atas ialah kandungan terperinci Susun semula nombor N pertama supaya jaraknya K dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • sumber:tutorialspoint.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan