Обчислення сум та добутків за допомогою рекурсії
Умова завдання
За допомогою рекурсивних функцій обчислити значення суми чи добутку.
В одній програмі слід вивести результати звертання до п’яти функцій, які реалізують
такі способи:
1) обчислення здійснюються на рекурсивному спуску, значення параметра в
рекурсивних викликах – спадає;
2) обчислення здійснюються на рекурсивному спуску, значення параметра в
рекурсивних викликах – зростає;
3) обчислення здійснюються на рекурсивному підйомі, значення параметра в
рекурсивних викликах – спадає;
4) обчислення здійснюються на рекурсивному підйомі, значення параметра в
рекурсивних викликах – зростає;
5) обчислення здійснюється ітераційним способом (для контролю правильності
рекурсивних способів).
Всі п’ять результатів мають збігатися. Всю необхідну функціям інформацію слід передавати
лише за допомогою параметрів. Має бути на c++ (1 скрін це приклад як має виглядати код) (2 скрін мій приклад по якому треба зробити код)
Приложения:
![](https://st.uroker.com/files/db0/db0911ddcf8a7d71881b8a44f051c72d.jpg)
![](https://st.uroker.com/files/563/563e24a63eb30c5f623cf5443fafa483.jpg)
Ответы
Ответ дал:
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:
Так там прикладний код той що я скинув а не код по моєму виразі
Вас заинтересует
3 месяца назад
3 месяца назад
3 месяца назад
1 год назад
1 год назад
7 лет назад