最大的共同因素

Greatest Common Factor

本文关键字:      更新时间:2023-10-16

所以我试着为刚开始学习C++的朋友(我对C++有一些基本知识)制作一个函数来寻找GCD(Greatest Common Divisor)。这是我的代码:

int gcd(int var1, int var2){
    int result;
    if(var1<1 || var2<1){
        return 0; //means error
    } else {
        for(int i=0; i<=var1 && i<=var2; i++){
            if((var1%i) == 0 && (var2%i) == 0){
                result = i;
            }
        }
    }
    return result;
}

它已编译,但问题是.exe在尝试使用运算符"%"时停止工作。在这种情况下,在此代码行:var1%ivar2%i。所以,我试着把代码调整成这样:

int gcd(int var1, int var2){
    int result;
    if(var1<1 || var2<1){
        result = 0; //means error
    } else {
        for(int i=var1; i>=1; i--){
            if((var1%i) == 0 && (var2%i) == 0){
                result = i;
                break;
            }
        }
    }
    return result;
}

它工作起来没有任何问题。所以,我想知道第一个代码有什么问题?

您不能按0进行%,因为它将生成一个被零除的异常。在第一个循环中,您需要从1开始i,而不是从0开始。

相关文章:
  • 没有找到相关文章