递归函数来计算序列的平方和(并输出过程)

问题描述 投票:0回答:1
int SeriesToOne(int n) {
if (n == 1) {
    cout << "(" << 1 << "*" << 1 << ") = ";
    return 1;
}
cout << "(" << n << "*" << n << ") + ";
return (n * n) + SeriesToOne(n - 1); }

嘿,所以我正在编写一个程序,该程序应该使用递归来计算序列中的平方和。我正在编写两个函数,一个函数计算从1到N的值,另一个函数计算从N到1的值,然后输出该过程。上面的代码是我为N编写的函数,但是从1到N遇到了很多麻烦。我不知道如何正确地写出基本情况,而又不用向函数添加第二个参数(赋值指定一个参数)。如果有人可以帮助我,那就太好了!很抱歉,如果我没有设置此帖子的格式或将其放在错误的位置,则是第一次张贴。

c++ recursion tail-recursion
1个回答
0
投票

好吧,由于基本条件,您需要知道递归函数内的n值,您可以将变量声明为全局变量,也可以在每次调用时将其传递给函数,如下所示:

int SeriesToN(int n, int N) {
    if (n == N) {
        cout << "(" << n << "*" << n << ") = ";
        return n * n;
    }
    cout << "(" << n << "*" << n << ") + ";
    return (n * n) + SeriesToN(n + 1, N); 
}

然后如果n = 4,则调用以下函数:

SeriesToN(1, 4);

这应该可以解决您的问题。编码愉快!

© www.soinside.com 2019 - 2024. All rights reserved.