c++有关gcd的用法不明白


int gcd(int a, int b)
{
    return b ? gcd(b, a % b) : a;
}

这里的问号啥意思,后面的:a有是啥意思?我只看得懂那个return b欸。

等价于下面的代码:


int gcd(int a, int b)
{
    if (b == 0){
        return a;
    }
    else{
        return gcd(b, a % b);
    }
}

参考:C++三目运算符https://blog.csdn.net/lbf4616/article/details/81711884

三目运算符,就是 if 语句的简单写法,相当于:

if (b != 0)
{
    return gcd(b, a % b);
}
else
{
    return a;
}

望采纳。

?是三元运算符,你可以去查一下三元运算符的用法