C++程式查詢滿足條件的陣列


假設,我們給定一個包含n個整數的陣列'x'。我們必須找出另一個整數陣列'y',使得x[1].y[1] + x[2].y[2] +...+ x[n].y[n] = 0。我們列印陣列y的內容。

問題類別

程式設計中的各種問題可以透過不同的技術來解決。要解決一個問題,我們首先必須設計一個演算法,為此,我們必須詳細研究特定問題。如果同一個問題反覆出現,則可以使用遞迴方法;或者,我們也可以使用迭代結構。可以使用if-else和switch case等控制語句來控制程式中邏輯的流程。有效地使用變數和資料結構可以提供更簡單的解決方案以及輕量級、低記憶體需求的程式。我們必須檢視現有的程式設計技術,例如分治法、貪心演算法、動態規劃,並找出它們是否可以被使用。這個問題可以透過一些基本的邏輯或蠻力方法來解決。請遵循以下內容以更好地理解該方法。

因此,如果我們問題的輸入類似於n = 6,x = {4, 6, 3, 8, 5, 7},則輸出將是-6 4 -8 3 -7 5

步驟

為了解決這個問題,我們將遵循以下步驟:

for initialize i := 0, when i < n, update i = i + 2, do:
   a := x[i]
   b := x[i + 1]
   print( - 1 * b followed by a space and a)

示例

讓我們看看以下實現以獲得更好的理解:

#include<bits/stdc++.h>
using namespace std;
void solve(int n, int x[]) {
   for(int i = 0; i < n; i = i + 2){
      int a = x[i];
      int b = x[i + 1];
      cout<< -1 * b << " " << a << " ";
   }
}
int main() {
   int n = 6, x[] = {4, 6, 3, 8, 5, 7};
   solve(n, x);
   return 0;
}

輸入

6, {4, 6, 3, 8, 5, 7}

輸出

-6 4 -8 3 -7 5

更新於: 2022年4月7日

508 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.