可以添加到C ++中的集合的最大差异元素
根据问题,我们得到一个集合arr[n],其中n是集合中整数元素的数量,任务是找到要添加到集合中的元素的最大差元素。换句话说,差异应为|ab|的形式其中“a”和“b”都在集合中,并且它们之间的差异不应最小。因此,我们将计算一个集合中最大且不同的最大数量。让我们借助示例了解问题及其解决方案。
输入-设置={1,5}
输出-可以添加到集合中的最大差异元素为:1
说明-集合中只有1差异,即|1-5|=4
输入-设置={2,7,1,9}
输出-最大差异
可以添加到集合中的元素是:5
说明-集合中的差异如下-
|2-7| = 5 |7-1| = 6 |1-9| = 8 |2-9| = 7 |7-9| = 2
在以下程序中使用的方法如下
取一个整数数组arr[n]来存储集合的值。
在功能上,maximum()
按照步骤3至6进行操作。
声明元素ele,temp,val并将其值设置为等于arr[0]
从1开始循环i,直到数组大小增加1步。
找到数组中所有元素的gcd。
将temp设置为temp或arr[i]之间的最大值。
将total设置为temp/val,将max设置为total和size之差。
返回并打印最大
示例
#include <bits/stdc++.h> using namespace std; //查找最大差异元素的功能 int maximum(int arr[], int size){ int ele = arr[0]; int val = ele; int temp = ele; for (int i = 1; i < size; i++){ val = __gcd(val, arr[i]); temp = max(temp, arr[i]); } int total = temp / val; int max = total - size; return max; } int main(){ int arr[] = { 2, 7, 1, 9}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Maximum difference elements that can added to a set is: "<<maximum(arr, size); return 0; }
输出结果
如果运行上面的代码,我们将获得以下输出-
Maximum difference elements that can added to a set is: 5