需要使用递归C ++计算算术级数的总和

时间:2019-05-06 04:34:08

标签: c++ recursion

我需要使用递归来总结我的进度成员。这是给出我的进度以及如何以递归方式计算总和的函数?

#include <iostream>

using namespace std;

void progressionRec(int a1, int d, int n) {
    if(n <= 1){
        cout << a1 << " ";
    } else {
        int next = a1 + d;
        progressionRec(next, d, n - 1);
        cout << a1 << " ";
    }
}
int main()
{
    progressionRec(2,3,15);
    return 0;
}

3 个答案:

答案 0 :(得分:1)

您可以通过这种方式汇总进度成员

import re
def extract_company(email):
    x= re.findall(r"\@(.*?)\.", "uditvashisht@gmail.com")
    return x[0]

答案 1 :(得分:0)

您可以使用函子来存储进度计数。这是一个示例实现:

#include <iostream>

using namespace std;

class progressionRec
{
public:
  void operator()(int a1, int d, int n) {
    ++count;
    if(n <= 1){
      cout << a1 << " ";
    } else {
      int next = a1 + d;
      operator()(next, d, n - 1);
      cout << a1 << " ";
    }
  }


  size_t getCount() const
  {
    return count;
  }

private:
  std::size_t count = 0;
};

int main()
{

    auto func = progressionRec();
    func(2,3,15);
    std::cout << "\nCount:" << func.getCount() << std::endl;
    return 0;
}

输出:

44 41 38 35 32 29 26 23 20 17 14 11 8 5 2
Count:15

答案 2 :(得分:0)

您需要将函数的返回类型更改为int,并在每次返回时返回总和:return a1 + progressionRec(next, d, n - 1);