GCD,迭代和递归问题

时间:2017-06-26 18:09:36

标签: c recursion iteration

我正在进行一项任务,我必须创建一个迭代和递归函数,读取两个数组(x_vals [i]和y_vals [i])并分别打印出GCD。递归和迭代函数的结果应该是相同的,否则一个或两个函数都会出错。以下是我所拥有的。我无法理解的是该程序出了什么问题,例如为什么我的结果不匹配。

VSS.require(["VSS/Service", "VSS/Security/RestClient"],
        function (Srv, SecAPI)
        {
            var SecClient = Srv.getCollectionClient(SecAPI.SecurityHttpClient);
            SecClient.queryAccessControlLists("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee").then(function(a)
            {
                //...
            });
        }

1 个答案:

答案 0 :(得分:1)

您在iterGCD的回程位置错误:

while ((number <= x) && (number <= y)) {
    ++number;

    if(x % number == 0 && y % number == 0) {
    GCD = number;
    }

    return GCD;     // <----------- wrong
}

在循环结束时,您将经历循环的单次迭代和return。 循环之后将return移动到

while ((number <= x) && (number <= y)) {
    ++number;

    if(x % number == 0 && y % number == 0) {
    GCD = number;
    }

}
return GCD;    // <----------- move here