在由 C++ 中的两个数组之和形成的集合中查找第 N 个项目!
在这个问题中,我们给出了两个大小为m的排序数组arr1[]和arr2[]以及一个元素N。我们的任务是在由两个数组之和形成的集合中找到第N个项目。
代码描述 -在这里,我们将创建一个由arr1的元素之一和arr2的元素之一的总和组成的集合,即sum=arr1[i]+arr2[j],其中i,j 让我们举个例子来理解这个问题,输入
arr1[] = {3, 1, 5} , arr2[] = {6, 2, 8} , N = 4
输出
解释
该集合的元素是-
9 (3+6 and 1 +8) , 5 (3 + 2) , 11 (3+8, 5+6), 7 (1+6, 5+2), 3 (1+2), 13 (5+8). The fourth element is 7.
解决方法
解决方法是简单地通过查找数组元素的总和来查找集合的元素。为此,我们将使用嵌套循环,外循环迭代arr1的元素,内循环迭代arr2的元素。并且对于内循环的每次迭代,我们将总和存储到集合中,这将不允许重复元素。在输入所有和值后,我们将遍历集合并返回第N个元素。
程序来说明我们的解决方案的工作,
示例
#include输出结果using namespace std; void calcSumVariables(int sum[], int n) { float SUMX = 0; for (int i = 0; i < n; i++) { SUMX += sum[i]; } SUMX /= (n - 1); for (int i = 0; i < n; i++) cout<<"\nx"<<(i + 1)<<" = "<<(SUMX - sum[i]); } int main(){ int sum[] = {3, 8, 6, 7, 4, 5, 9 }; int N = sizeof(sum) / sizeof(sum[0]); cout<<"形成总和的变量的值是 "; calcSumVariables(sum, N); return 0; }
形成总和的变量的值是 x1 = 4 x2 = -1 x3 = 1 x4 = 0 x5 = 3 x6 = 2 x7 = -2