• Предмет: Информатика
  • Автор: htyuwvv
  • Вопрос задан 3 месяца назад

Обчислення сум та добутків за допомогою рекурсії
Умова завдання
За допомогою рекурсивних функцій обчислити значення суми чи добутку.
В одній програмі слід вивести результати звертання до п’яти функцій, які реалізують
такі способи:
1) обчислення здійснюються на рекурсивному спуску, значення параметра в
рекурсивних викликах – спадає;
2) обчислення здійснюються на рекурсивному спуску, значення параметра в
рекурсивних викликах – зростає;
3) обчислення здійснюються на рекурсивному підйомі, значення параметра в
рекурсивних викликах – спадає;
4) обчислення здійснюються на рекурсивному підйомі, значення параметра в
рекурсивних викликах – зростає;
5) обчислення здійснюється ітераційним способом (для контролю правильності
рекурсивних способів).
Всі п’ять результатів мають збігатися. Всю необхідну функціям інформацію слід передавати
лише за допомогою параметрів. Має бути на c++ (1 скрін це приклад як має виглядати код) (2 скрін мій приклад по якому треба зробити код)

Приложения:

Ответы

Ответ дал: salpsx
1

#include <iostream>

#include <cmath>

using namespace std;

double rec(const int K, const int N, const int i = 1) {

   if (i > N) return 0;

   return sin(1.0 * ((K <= N) ? i : N)) + rec(K, N, (K <= N) ? (i + 1) : (i - 1));

}

double iter(const int K, const int N) {

   double result = 0;

   for (int i = K; i <= N; ++i) result += sin(1.0 * i);

   return result;

}

int main() {

   int K, N;

   cout << "K="; cin >> K;

   cout << "N="; cin >> N;

   cout << "(iter) se = " << iter(K, N) << endl;

   cout << "(rec up ++) 51 = " << rec(K, N) << endl;

   cout << "(rec up --) S2 = " << rec(K, N, N) << endl;

   cout << "(rec down ++) 53 = " << rec(K, N, K) << endl;

   cout << "(rec down --) 54 = " << rec(K, N, N) << endl;

   return 0;

}


htyuwvv: Так там прикладний код той що я скинув а не код по моєму виразі
salpsx: ну как будто могу переправить если надо
htyuwvv: надо потому что задание как будто не выполнено
Вас заинтересует