Informatică, întrebare adresată de Teodora1899, 8 ani în urmă

27. Se consideră subalgoritmul f2(a,b) cu parametrii a și b numere naturale, și subalgoritmul f(arr,
i, n, p) având ca parametri șirul arr cu n numere întregi (arr[1], arr[2], …, arr[n]), și numerele întregi
i și p.
Subalgoritm f2(a, b):
Dacă a > b atunci
returnează a
altfel
returnează b
SfDacă
SfSubalgoritm
Subalgoritm f(arr, i, n, p):
Dacă i = n atunci
returnează 0
SfDacă
n1 ← f(arr, i + 1, n, p)
n2 ← 0
Dacă p + 1 ≠ i atunci
n2 ← f(arr, i + 1, n, i) + arr[i]
SfDacă
returnează f2(n1, n2)
SfSubalgoritm
Precizați care este rezultatul apelului f(arr, 1, 9, -10), dacă șirul arr conține valorile (10, 1, 3, 4,
8, 12, 1, 11, 6).

Stie cineva sa rezolve problema asta?

Răspunsuri la întrebare

Răspuns de Apollyon
2

Răspuns:

#include <iostream>

using namespace std;

int f(int[], int, int, int);

int f2(int, int);

int main() {

int arr[] = { 10,1,3,4,8,12,1,11,6 };

cout << f(arr, 1, 9, -10);

return 0;

}

int f(int arr[], int i, int n, int p) {

if (i == n) return 0;

int n1 = f(arr, i + 1, n, p);

int n2 = 0;

if (p + 1 != i) n2 = f(arr, i + 1, n, i) + arr[i];

return f2(n1, n2);

}

int f2(int a, int b) {

if (a > b) return a;

return b;

}

Returnează 28

Alte întrebări interesante