C++ 第44课判断最大公约数

//枚举
#include <iostream>
using namespace std;
int main() {
	int n;
	cin>>n;
	int a[n],i;
	for(int j = 1;j<=n;j++){
		cin>>a[j];
		if(a[j]<i){
            i = a[j];
        }
	}
	i = a[1];
    for(;i>1;i--){
    	for(int o = 1;o<=n;o++){
    		if(a[o]%i==0){
    			if(o==n){
    				cout<<i;
    				return 0;
				}
    		}else{
    			break;
			}
		}
	}
	if(i==1){
		cout<<"没有最大公约数";
	}
	return 0;
}
//递归
#include <iostream>
using namespace std;
int c(int n,int i,int* a){
	for(int o = 1;o<=n;o++){
    	if(a[o]%i==0){
    		if(o==n){
    			cout<<i;
			}
    	}else{
    		c(n,i-1,a);
    		break;
		}
	}
}
int main() {
	int n;
	cin>>n;
	int a[n],i;
	for(int j = 1;j<=n;j++){
		cin>>a[j];
		if(a[j]<i){
            i = a[j];
        }
	}
	i = a[1];
	c(n,i,a);
	if(i==1){
		cout<<"没有最大公约数";
	}
	return 0;
}

  

posted @ 2022-09-22 19:52  王一行  阅读(22)  评论(0)    收藏  举报