关闭

工大机试第14题

356人阅读 评论(0) 收藏 举报
分类:

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

步骤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;
  }
 }
}

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36051次
    • 积分:1186
    • 等级:
    • 排名:千里之外
    • 原创:85篇
    • 转载:5篇
    • 译文:0篇
    • 评论:3条
    最新评论