您的位置:首页 > 编程语言 > C语言/C++

C++ 第十三周任务-最大公约数

2012-11-22 16:31 218 查看
/*      
* 程序的版权和版本声明部分      
* Copyright (c)2012, 烟台大学计算机学院      
* All rightsreserved.      
* 文件名称:最大公约数.cpp                                 
* 作    者:王锴英                               
* 完成日期:2012年11月22日      
* 版 本 号: v1.0            
* 输入描述:输入两个正整数,求其最大公约数     
* 问题描述:略     
* 程序输出:略     
* 问题分析:略     
*/     
我的程序:
递归:
#include<iostream>   
using namespace std;  
int f(int m,int n)  
{  
 int min=0;  
    if(m>=n){  
        min=n;  
        n=m;  
  m=min;  
    }  
 if(m!=0)  
        return f(m,n%m);  
    return n;  
}   
int main()  
{  
    int a,b;  
    cout<<"请输入两个正整数:"<<endl;  
    cin>>a>>b;  
    cout<<a<<"和"<<b<<"的最大公约数是"<<f(a,b)<<endl;  
    return 0;  
} 
非递归:
#include<iostream>   
using namespace std;  
int main()  
{  
 int m,n,min,max;  
 cout<<"请输入两个正整数:"<<endl;  
 cin>>m>>n;  
 {  
  if(m>=n){  
   min=n;  
  }else{  
   min=m;  
  }  
  while(true){  
   if(m%min==0&&n%min==0){  
    cout<<"最大公约数是:"<<min<<endl;  
    break;  
   }  
   min--;  
  }  
 }  
}


运行结果:



心得体会:渐渐理解了,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: