250
Cerința
Se dau două numere n m
. Să se genereze toate numerele cu exact n
cifre mai mici decât m
cu proprietatea că diferența în valoare absolută dintre oricare două cifre consecutive este cel puțin 2
.
Date de intrare
Programul citește de la tastatură numerele n m
.
Date de ieșire
Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare.
Restricții și precizări
1 ≤ n ≤ 7
0 < m < 6
Exemplu
Intrare
3 4
Ieșire
130 131 202 203 302 303 313
#include <bits/stdc++.h> using namespace std; int n , m , x[10] , a[10] , rez; int valid(int k) { if(k == 1 && x[k] != 0) return 1; if(abs(x[k] - x[k - 1]) > 1) return 1; else return 0; } void afisare() { for(int i = 1 ; i <= n ; ++i) cout << x[i]; cout << '\n'; } void back(int k) { for(int i = 0 ; i < m ; ++i) { x[k] = i; if(valid(k)) { if(k == n)afisare(); else back(k + 1); } } } int main() { cin >> n >> m; back(1); return 0; }
Comentarii