在 C++ 中重新排列前 N 個數字,使它們處於 K 距離
給定整數變量,比如說 N 和 K。任務是先計算 N 的排列,然後重新排列排列,使其與每個元素的距離為 K。
讓我們來看看各種輸入輸出場景-輸入- int n = 20, int k = 2
輸出
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> 輸出- 重新排列前N 個數字以使它們處於K 距離:不可能 解釋 - 我們給出了整數變數'N' 即10,'K' 即3。現在我們將計算 'N' 的排列,即 1, 2, 3, 4, 5, 6, 7, 8, 9, 10。現在,我們將排列元素以這樣的方式,所有元素都與每個元素相距“k”距離,但對於給定的輸入值是不可能的。 輸入一個整數型元素,即'N'和'K'。 呼叫函數Rearrangement(int n, int k) 透過將 N 和 K 作為參數傳遞給函數。 函數內部Rearrangement(int n, int k) #宣告一個整數變數為temp 並設定為n % (2 * k )。 宣告一個整數陣列為大小為 n 的 ptr 1 即 prt[n 1]。 檢查IF k = 0 然後開始從i 到1 循環FOR 直到i 小於size 並將i 增加1 並列印i . 檢查IF temp 不等於0,然後列印NOT POSSIBLE。 開始從i 到1 的FOR 循環,直到i 小於 開始從i 到1 的FOR 循環,直到i 小於n,並將i 設定為i 2 * k。在迴圈內部,啟動另一個迴圈 FOR 從 j 到 1,直到 j 小於 k 並將 j 加 1。在循環內部,透過傳遞 ptr[i j -1] 和 ptr[k i j 呼叫 swa 方法- 1] 作為參數。 開始從 i 到 1 的 FOR 循環,直到 i 小於 N 並將 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

C語言數據結構:樹和圖的數據表示與操作樹是一個層次結構的數據結構由節點組成,每個節點包含一個數據元素和指向其子節點的指針二叉樹是一種特殊類型的樹,其中每個節點最多有兩個子節點數據表示structTreeNode{intdata;structTreeNode*left;structTreeNode*right;};操作創建樹遍歷樹(先序、中序、後序)搜索樹插入節點刪除節點圖是一個集合的數據結構,其中的元素是頂點,它們通過邊連接在一起邊可以是帶權或無權的數據表示鄰

文件操作難題的真相:文件打開失敗:權限不足、路徑錯誤、文件被佔用。數據寫入失敗:緩衝區已滿、文件不可寫、磁盤空間不足。其他常見問題:文件遍歷緩慢、文本文件編碼不正確、二進製文件讀取錯誤。

文章討論了在C中有效使用RVALUE參考,以進行移動語義,完美的轉發和資源管理,重點介紹最佳實踐和性能改進。(159個字符)

C35 的計算本質上是組合數學,代表從 5 個元素中選擇 3 個的組合數,其計算公式為 C53 = 5! / (3! * 2!),可通過循環避免直接計算階乘以提高效率和避免溢出。另外,理解組合的本質和掌握高效的計算方法對於解決概率統計、密碼學、算法設計等領域的許多問題至關重要。

本文討論了使用C中的移動語義來通過避免不必要的複制來提高性能。它涵蓋了使用std :: Move的實施移動構造函數和任務運算符,並確定了關鍵方案和陷阱以有效

C語言函數是代碼模塊化和程序搭建的基礎。它們由聲明(函數頭)和定義(函數體)組成。 C語言默認使用值傳遞參數,但也可使用地址傳遞修改外部變量。函數可以有返回值或無返回值,返回值類型必須與聲明一致。函數命名應清晰易懂,使用駝峰或下劃線命名法。遵循單一職責原則,保持函數簡潔性,以提高可維護性和可讀性。

C語言函數名定義包括:返回值類型、函數名、參數列表和函數體。函數名應清晰、簡潔、統一風格,避免與關鍵字衝突。函數名具有作用域,可在聲明後使用。函數指針允許將函數作為參數傳遞或賦值。常見錯誤包括命名衝突、參數類型不匹配和未聲明的函數。性能優化重點在函數設計和實現上,而清晰、易讀的代碼至關重要。

C語言函數是可重複利用的代碼塊,它接收輸入,執行操作,返回結果,可將代碼模塊化提高可複用性,降低複雜度。函數內部機制包含參數傳遞、函數執行、返回值,整個過程涉及優化如函數內聯。編寫好的函數遵循單一職責原則、參數數量少、命名規範、錯誤處理。指針與函數結合能實現更強大的功能,如修改外部變量值。函數指針將函數作為參數傳遞或存儲地址,用於實現動態調用函數。理解函數特性和技巧是編寫高效、可維護、易理解的C語言程序的關鍵。
