Să se genereze în doi vectori a şi b, şi apoi să se alişeze, termenii sirurilor an si bn definite recursive astfel 8
an=(an-1+bn-1)/2 bn=(an-1+2xbn-1)/3
…………………………………………………………………………….
a1=(a0+b0)/2 b1=(a0+2xb0)/3
unde a0, b0 şi n se citesc de la tastatură.
#include <iostream>
using namespace std;
int main() {
int n, a0, b0;
cin >> n >> a0 >> b0;
int a[n], b[n];
a[0] = a0;
b[0] = b0;
int c[n];
for (int i = 1; i < n; i++) {
int an = (a[i-1] + b[i-1]) / 2;
int bn = (a[i-1] + 2*b[i-1]) / 3;
a[i] = an;
b[i] = bn;
c[i] = min(a[i], b[n-i-1]);
c[i+n-1] = max(a[i], b[n-i-1]);
}
for (int i = 0; i < 2*n-2; i++) {
cout << c[i] << ” „;
}
cout << endl;
return 0;
}
Pentru a rezolva această problemă, vom folosi o buclă for pentru a genera fiecare termen din șirurile an și bn în funcție de termenii anteriori. Vom declara și initializa vectorii a și b cu valorile a0 și b0 citite de la tastatură, apoi vom declara vectorul c ca un vector gol.
În fiecare iterație a buclei for, vom calcula valorile an și bn folosind valorile anterioare și vom adăuga aceste valori în vectorii a și b. De asemenea, vom calcula valorile minime și maxime și le vom adăuga în vectorul c.
La final, vom afișa conținutul vectorului c.