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.