您的位置:首页 > 编程语言 > Go语言

辗转相除法求最大公约数,非goto

2014-12-01 20:17 183 查看
#include<iostream>
using namespace std;
//不推荐用goto,当然用它更快
//辗转相除法求两数的最大公约数
int gcd(long int a,long int b){
int x=a<b?a:b;
//获得较小者,用来做循环的约束值

for(int i=0;i<x;x++){
//循环
if(a>b){
int r=a%b;//取余数
if(r==0){//能否整除判断
return b;//可以便输出
}else{//否则进行下一轮的算法
a=b,b=r;
}
}else if(a<b){//下面一样
int r=b%a;
if(r==0){
return a;
}else{
b=a,a=r;
}
}else{//两数相等的,直接输出其中一个
return a;
}
}
}

int main(){
int y=0;y=gcd(156,176);
cout<<"156和176的最大公约数是:"<<y;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: