求a,b最大公约数:求a%c=0,b%c=0的最大整数c.
题目1056:最大公约数
时间限制:1 秒内存限制:32 兆特殊判题:否提交:9088解决:6058
题目描述:
输入两个正整数,求其最大公约数。
输入:
测试数据有多组,每组输入两个正整数。
输出:
对于每组输入,请输出其最大公约数。
样例输入:
49 14
样例输出:
7
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int gcd(int a,int b){
if(a == 0 && b ==0)
{
return -1; //不存在最大公约数
}
if(b== 0) return a;
else {
gcd(b,a%b);
}
}
int main(int argc, char *argv[]) {
int a,b;
while(cin>>a>>b){
cout<<gcd(a,b)<<endl;
}
return 0;
}
三种情况:
- a=0 b=0 不存在最大公约数
- a!=0 b=0 a为最大公约数
- a!=0 b !=0 令a=b,b=a%b