试图弄清楚如何使用递归来获得与另一个函数相同的答案

时间:2017-03-31 19:16:44

标签: c++ math recursion

我可以在编程任务中使用一些帮助。我需要使用递归来生成arithmetic_series = arithmetic_series_recursive。现在我的递归功能无法正常工作。它只能工作到三号。这些函数应该从用户获取输入并根据数字内的整数形成一个数字。 IE如果用户输入3则为1 * 2 * 3 = 6。

int arithmetic_series(int n){
    int total = ((n+1) * n )/ 2;
    cout << total << endl;
    return total;
}

int arithmetic_series_recursive(int n){
    if(n==1){
            return 1;
    }else{
    return n*arithmetic_series_recursive(n-1);
    }

}

1 个答案:

答案 0 :(得分:1)

您的第一个函数查找从1n的整数之和。您的第二个函数找到该范围的乘积,或!n。我不知道您在第一个功能中可以使用的任何简化。

如果您想找到数字的总和,您可以更改第二个功能以执行添加:

int arithmetic_series_recursive(int n) {
    if (n == 1) {
        return 1;
    }
    else {
        return n + arithmetic_series_recursive(n - 1);
    }

}