#1、给出Bezout定理的完整证明。
#2、实现GCD算法的迭代版本。
#includeusing namespace std; int gcd(int a,int b) { int temp=0; while(b!=0) { temp = a; a = b; b = temp % a; } return a; } int main() { int gcd(int a,int b); int a=18; int b=9; cout<<"a=18 b=9"< #3、实现EGCD算法。输入:a、b两个整数,输出:r、s、d三个整数,满足ar + bs =d。
#includeusing namespace std; int egcd(int a,int b,int *result) { if (a>a; cin>>b; egcd(a,b,result); cout<<"系数r:"< #4、实现一种批处理版本的GCD算法,即,给定一个整数数组,输出其中所有整数的最大公因子。输入:一个整数数组a;输出:一个整数d,是a数组中所有整数的最大公因子。
#includeusing namespace std; int gcd(int arr[],int n) { int d; if (arr[0] < arr[1]) { int tmp = arr[0]; arr[0] = arr[1]; arr[1] = tmp; } while (arr[1] != 0) { arr[0] = arr[0] % arr[1]; int tmp = arr[0]; arr[0] = arr[1]; arr[1] = tmp; } d = arr[0]; for (int i = 2; i < n; i++) { if (d < arr[i]) { int tmp = arr[i]; arr[i] = d; d = tmp; } while (arr[i] != 0) { d = d % arr[i]; int tmp = d; d = arr[i]; arr[i] = tmp; } } return d; } int main() { int gcd(int arr[],int n); int n; cout <<"请输入数组的元素个数:"<< endl; cin>>n; int *p = new int[n]; for (int i = 0; i < n; i++) { cin>>p[i]; } cout <<"最大公因数为:"< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)