最大公约数
中国科学技术大学机试题
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
读入n个正整数,求出这n个数的最小值、最大值以及它们两的最大公约数,并输出。输入中第一行为n,接下来为n个大于零的整数。
输入输出格式
输入描述:
第一行为n。第二行是n个大于零的整数,用空格隔开。
输出描述:
分别输出最小值、最大值和它们两的最大公约数,用空格隔开。
输入输出样例
输入样例#:
3 4 8 6
输出样例#:
4 8 4
解题方法
思路
如代码所示
代码
#include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b){
if(b==0) return a;
else return(gcd(b,a%b));
}
int main(){
int n,count;
while(cin>>n){
count=0;
vector<int> v(n);
for(int i=0;i<n;i++){
cin>>v[i];
}
sort(v.begin(),v.end());
cout<<v[0]<<" "<<v[n-1]<<" ";
cout<<gcd(v[0],v[n-1])<<endl;
}
return 0;
}