4.下列程序的输出结果是(  )。

#include <iostream>
using namespace std;
int gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a%b);
}
int main()
{
    int a = 60, b = 25;
    cout << gcd(a, b) << endl;
    return 0;
}

别灰心,再试一次!

💡 真题解析

【解析】这里的gcd(a,b)函数是“辗转相除法”的递归实现,用于求解a和b的最大公约数。不妨模拟一下递归的过程,gcd(60,25)将返回gcd(25,10),gcd(25,10)将返回gcd(10,5),gcd(10,5)将返回gcd(5,0),gcd(5,0)会返回5,所以gcd(60,25)的返回值为5。

【答案】B