/*
* 文件名称: qg21.cop
* 作 者: 李秋谷
* 完成日期: 2016 年 06月 03日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:求解两个数的最大公约数和最小公倍数
* 问题描述:
* 程序输出:
* 问题分析: 略
* 算法设计: 运用辗转相除法
#include <iostream>
using namespace std;
int gcd(int,int);
int gcm(int,int);
int main()
{
int a,b,g1;
cout<<"请输入两个数:";
cin>>a>>b;
g1=gcd(a,b);
cout<<"最大公约数是: "<<g1;
cout<<endl;
int m,n,g2;
cout<<"请输入两个数:";
cin>>m>>n;
g2=gcm(m,n);
cout<<"最小公倍数是: "<<g2;
cout<<endl;
return 0;
}
int gcd(int x,int y)
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
int max,min;
int gcm(int x,int y)
{
int r;
max=x>y?x:y;
min=x<y?x:y;
if(max%min==0)
return max;
while(max%min!=0)
{
r=max%min;
max=min;
min=r;
}
return x*y/min;
}
三:知识点总结
求两个数的最大公约数和最小公倍数的程序最重要的是清楚他们的算法,return 0的返回操作不一定是要在结尾才能用
四:心得体会
最大公约数的算法书上有,最小公倍数的算法是百度的。我发现 编写数学方面的程序你得学会用c++的语言表示出数学算法,两者之间要学会转化。