###题目描述
题目描述
输入两个正整数,求其最大公约数。
输入描述:
测试数据有多组,每组输入两个正整数。
输出描述:
对于每组输入,请输出其最大公约数。
示例1
输入
49 14
输出
7
###代码 & 分析
其实就是记一下递归写法,挺简洁的。。
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int a;
int b;
int gcd(int a, int b){ //普通写法
int k = a%b;
while(k){
a = b;
b = k;
k = a%b;
}
return b;
}
int gcd1(int a, int b){ //递归形式的写法
if(b==0)
return a;
else
return gcd1(b, a%b);
}
int gcd2(int a, int b){ //更简单的写法
return b==0?a:gcd2(b, a%b);
}
int main(){
while(cin>>a){
cin>>b;
cout<<gcd(a ,b)<<endl;
cout<<gcd1(a, b)<<endl;
cout<<gcd2(a, b)<<endl;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116809.html