Se dau patru numere naturale n a x y. Să se afișeze elementele mulțimii M, cu următoarele proprietăți:
toate elementele lui M sunt numere naturale mai mici sau egale cu n;
a se află în M;
dacă b se află în M, atunci b+x și b+y se află în M.
Date de intrare
Programul citește de la tastatură numerele n a x y.
Date de ieșire
Programul va afișa pe ecran elementele mulțimii M, în ordine crescătoare, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 10000
1 ≤ x , y ≤ 10000
0 ≤ a ≤ 10000
rossetta:
recursiv sau cu coada ?
Răspunsuri la întrebare
Răspuns de
2
#include <iostream>
using namespace std;
const int MAX_N = 10000;
int n, x, y;
bool apartine[1 + MAX_N] ;
void genereaza(int b) {
if (b <= n && !apartine[b]) {
apartine[b] = true;
genereaza(b + x);
genereaza(b + y);
}
}
int main() {
int a;
cin >> n >> a >> x >> y;
genereaza(a);
for (int i = 0; i <= n; i++)
if (apartine[i])
cout << i << ' ';
return 0;
}
using namespace std;
const int MAX_N = 10000;
int n, x, y;
bool apartine[1 + MAX_N] ;
void genereaza(int b) {
if (b <= n && !apartine[b]) {
apartine[b] = true;
genereaza(b + x);
genereaza(b + y);
}
}
int main() {
int a;
cin >> n >> a >> x >> y;
genereaza(a);
for (int i = 0; i <= n; i++)
if (apartine[i])
cout << i << ' ';
return 0;
}
Alte întrebări interesante
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Religie,
8 ani în urmă
Arte,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă