当前位置:编程学习 > C/C++ >>

题目1221: 最大公约数

题目描述
读入n个正整数,求出这n个数的最小值、最大值以及它们两的最大公约数,并输出。number.in中第一行为n,接下来为n个大于零的整数。    
 
 
 
 
输入
 第一行为n。第二行是n个大于零的整数,用空格隔开。
 
 
 
输出
 分别输出最小值、最大值和它们两的最大公约数,用空格隔开。
 
 
 
样例输入
3
4 8 6 
 
样例输出
4 8 4 
 
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
 
 
 
来源
2012年中国科技大学计算机研究生机试真题
 
 
 
 
 
 
 
[cpp]
/*********************************  
*   日期:2013-3-19 
*   作者:SJF0115  
*   题号: 题目1221: 最大公约数 
*   来源:http://ac.jobdu.com/problem.php?pid=1221 
*   结果:AC  
*   来源:2012年中国科技大学计算机研究生机试真题 
*   总结:  
**********************************/   
#include<stdio.h>   
#include<limits.h>   
#include<string.h>   
  
int 易做图(int a,int b){  
    if(b == 0){  
        return a;  
    }  
    else{  
        return 易做图(b,a%b);  
    }  
}  
  
int main () {  
    int i,N,Min,Max,x,c;  
    while(scanf("%d",&N) != EOF){  
        Min = INT_MAX;  
        Max = INT_MIN;  
        //最大值 最小值   
        for(i = 0;i < N;i++){  
            scanf("%d",&x);  
            if(Min > x){  
                Min = x;  
            }  
            if(Max < x){  
                Max = x;  
            }  
        }  
        //最大公约数   
        c = 易做图(Max,Min);  
        printf("%d %d %d\n",Min,Max,c);  
    }//while   
    return 0;  
}  
 
/********************************* 
*   日期:2013-3-19
*   作者:SJF0115 
*   题号: 题目1221: 最大公约数
*   来源:http://ac.jobdu.com/problem.php?pid=1221
*   结果:AC 
*   来源:2012年中国科技大学计算机研究生机试真题
*   总结: 
**********************************/ 
#include<stdio.h>
#include<limits.h>
#include<string.h>
 
int 易做图(int a,int b){
if(b == 0){
return a;
}
else{
return 易做图(b,a%b);
}
}
 
int main () {
int i,N,Min,Max,x,c;
    while(scanf("%d",&N) != EOF){
Min = INT_MAX;
Max = INT_MIN;
//最大值 最小值
for(i = 0;i < N;i++){
scanf("%d",&x);
if(Min > x){
Min = x;
}
if(Max < x){
Max = x;
}
}
//最大公约数
c = 易做图(Max,Min);
printf("%d %d %d\n",Min,Max,c);
    }//while
    return 0;
}
 
 
 
 
 
 
 
 
可以参考博文:最大公约数
 
这里提供了几种求法。
 
 
 
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,