工大机试第14题

 编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。算法如下:

步骤1:      如果p < q,则交换pq

步骤2:     rp / q 的余数。

步骤3:      如果r = 0,则令g = q并终止;

否则令p = q, q = r并转向步骤2

代码如下:

#include
using namespace std;
int main()
{
 int p=1,q=1,g=1, temp=1,r=1;
 cout<<"请输入两个正整数:"<<endl;
 cin>>p;
 cin>>q;
 //步骤1: 如果p < q,则交换p和q
  if(p
  {
   temp=p;
   p=q;
   q=temp;
  }
 while(1)
 {
  
  //步骤2: 令r是p / q 的余数。
 
  r=p%q;
  //步骤3: 如果r = 0,则令g = q并终止;否则令p = q, q = r并转向步骤2
  if(0==r)
  {
   g=q;
   cout<<"最大公约数为"<<g<<endl;
     return g;
  }
  else
  {
   p=q;
   q=r;
   r=p%q;
  }
 }
}

欢迎支持访问下小站船长旅游网,百度搜索 船长旅游网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值