首页 > 代码库 > 辗转相除法求最大公约数,非goto
辗转相除法求最大公约数,非goto
1 #include<iostream> 2 using namespace std; 3 //不推荐用goto,当然用它更快 4 //辗转相除法求两数的最大公约数 5 int gcd(long int a,long int b){ 6 int x=a<b?a:b; 7 //获得较小者,用来做循环的约束值 8 9 for(int i=0;i<x;x++){10 //循环11 if(a>b){12 int r=a%b;//取余数13 if(r==0){//能否整除判断14 return b;//可以便输出15 }else{//否则进行下一轮的算法16 a=b,b=r;17 }18 }else if(a<b){//下面一样19 int r=b%a;20 if(r==0){21 return a;22 }else{23 b=a,a=r;24 }25 }else{//两数相等的,直接输出其中一个26 return a;27 }28 }29 }30 31 int main(){32 int y=0;y=gcd(156,176);33 cout<<"156和176的最大公约数是:"<<y;34 35 return 0;36 }
辗转相除法求最大公约数,非goto
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。