在C ++中找到给定数组的元素阶乘的GCD
假设我们有一个包含N个元素的数组A。我们必须找到数组所有元素的阶乘的GCD。假设元素为{3,4,8,6},那么阶乘的GCD为6。在这里我们将看到窍门。由于两个数的GCD是最大数,将两个数相除,因此两个数的阶乘的GCD就是最小数本身的阶乘的值。那么3的gcd!和5!是3!= 6。
示例
#include <iostream>using namespace std;
long fact(int n){
if(n <= 1)
return 1;
return n * fact(n-1);
}
int gcd(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; i++) {
if(min > arr[i])
min = arr[i];
}
return fact(min);
}
int main() {
int arr[] = {3, 4, 8, 6};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "GCD: "<< gcd(arr, n);
}
输出结果
GCD: 6
以上是 在C ++中找到给定数组的元素阶乘的GCD 的全部内容, 来源链接: utcz.com/z/331553.html