欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1207

程序员文章站 2022-06-23 18:38:01
...

1207:求最大公约数
【题目描述】
给定两个正整数,求它们的最大公约数。

【输入】
输入一行,包含两个正整数(<1,000,000,000)。

【输出】
输出一个正整数,即这两个正整数的最大公约数。

【输入样例】
6 9
【输出样例】
3

二、解题思路
采用辗转相除法。设有A,B两个数符合求取最大公约数,则 result = A % B,如果 result 不是最大公约数,则 A = B,B = result 循环求解,有最大公约数即结束程序。

#include <iostream>

using namespace std;

int f(int a,int b)
{
    if(b==0)
    {
        return a;
    }
    return f(b,a%b);   //辗转相除法
}

int main()
{
    int a,b;
    cin>>a>>b;
    if(a>b)
    {
        cout<<f(a,b)<<endl;
    }
    else
    {
        cout<<f(b,a)<<endl;
    }
    return 0;
}