使用三种方法求两个整数的最大公约数
2017-03-22 17:15
183 查看
#include<stdio.h>
#include<iostream>
using namespace std;
void way1() //穷举法
{
cout<<"请输入两个整数:";
int a,b;
cin>>a>>b; //从键盘输入两个数
int n=a;
if (n>b)
n=b; //取两个数中的较小数
for(int i=n;i>=1;i--)
{
if (a%i==0&&b%i==0)
{
cout<<"最大公约数:"<<i<<endl;
break;
}
}
}
void way2() //辗转相除法
{
int a,b,temp,x;
cout<<"请输入两个整数:";
cin>>a>>b;
if(a>b) //选出较小的数
{
temp=b;
b=a;
a=temp;
}
while(b%a!=0) //算出余数
{
x=b%a;
b=a;
a=x;
}
cout<<"最大公约数:"<<a<<endl;
}
void way3() //辗转相减法
{
int a,b;
cout<<"请输入两个整数:";
cin>>a>>b; //从键盘输入两个数
while(1)
{
if(a>b)
{
a = a-b; //将两个数的差值赋给最大的一个
}
else if(a<b)
{
b = b-a;
}
else
{
cout<<"最大公约数:"<<b<<endl;
break; //跳出整个循环
}
}
}
void main()
{
cout<<"求最大公约数的方法:"<<endl;
cout<<"1.穷举法"<<endl;
cout<<"2.辗转相除法"<<endl;
cout<<"3.辗转相减法"<<endl;
cout<<"4.退出系统"<<endl;
while(1)
{
cout<<"请选择方法编号:";
int n;
cin>>n;
switch(n)
{
case 1:way1();break;
case 2:way2();break;
case 3:way3();break;
case 4:return;
default:cout<<"输入错误,请重新选择"<<endl;
}
}
}
#include<iostream>
using namespace std;
void way1() //穷举法
{
cout<<"请输入两个整数:";
int a,b;
cin>>a>>b; //从键盘输入两个数
int n=a;
if (n>b)
n=b; //取两个数中的较小数
for(int i=n;i>=1;i--)
{
if (a%i==0&&b%i==0)
{
cout<<"最大公约数:"<<i<<endl;
break;
}
}
}
void way2() //辗转相除法
{
int a,b,temp,x;
cout<<"请输入两个整数:";
cin>>a>>b;
if(a>b) //选出较小的数
{
temp=b;
b=a;
a=temp;
}
while(b%a!=0) //算出余数
{
x=b%a;
b=a;
a=x;
}
cout<<"最大公约数:"<<a<<endl;
}
void way3() //辗转相减法
{
int a,b;
cout<<"请输入两个整数:";
cin>>a>>b; //从键盘输入两个数
while(1)
{
if(a>b)
{
a = a-b; //将两个数的差值赋给最大的一个
}
else if(a<b)
{
b = b-a;
}
else
{
cout<<"最大公约数:"<<b<<endl;
break; //跳出整个循环
}
}
}
void main()
{
cout<<"求最大公约数的方法:"<<endl;
cout<<"1.穷举法"<<endl;
cout<<"2.辗转相除法"<<endl;
cout<<"3.辗转相减法"<<endl;
cout<<"4.退出系统"<<endl;
while(1)
{
cout<<"请选择方法编号:";
int n;
cin>>n;
switch(n)
{
case 1:way1();break;
case 2:way2();break;
case 3:way3();break;
case 4:return;
default:cout<<"输入错误,请重新选择"<<endl;
}
}
}
相关文章推荐
- 求两个整数最大公约数的三种方法(相减法,辗转相除法,穷举法)
- 使用三种算法解决从键盘输入两个整数,输出两个整数的最大公约数的问题
- 利用三种方法求两个整数的最大公约数
- 算法课本~计算两个最大公约数的三种方法
- 求两个整数的最大公约数————(使用调用函数)
- 编写方法,输入两个正整数m和n,求其最大公约数和最小公倍数 。
- 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法
- 使用Hibernate获取最大值(max)的三种方法(转载)
- 三种方法实现求两个数的最大公约数
- 使用Hibernate获取最大值(max)的三种方法
- 求两个整数的最大公约数
- 求两个整数的最大值的方法的汇总
- 欧几里得求两个整数最大公约数算法的汇编递归实现代码
- 输入两个正整数,求它们的最大公约数和最小公倍数.
- 求两个整数的最大公约数
- 【C语言】求两个整数的最大公约数、最小公倍数
- c语言:输入两个正整数m和n,求其最大公约数和最小公倍数
- C_使用while语句求两整数的最小公倍数与最大公约数
- 使用Hibernate获取最大值(max)的三种方法
- 另类方法求两个整数的最大值 最小值