Advertisement
Dani_info

Problema cifre nr

Dec 7th, 2019
133
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int v[10], n=4;
  6.  
  7. void init (int k){
  8.     v[k]=0;
  9. }
  10.  
  11. int solutie (int k, int p){
  12.     return k==p;
  13. }
  14.  
  15. int valid (int k){
  16.     if (k>=1 && v[k-1]>v[k])
  17.         return 0;
  18.     return 1;
  19. }
  20.  
  21. int existaSuccesor (int k){
  22.     if (v[k]<n){
  23.         v[k]++;
  24.         return 1;
  25.     }
  26.     return 0;
  27. }
  28.  
  29. // {2, 6, 9, 3}
  30. void tipar (int p){
  31.     for (int i=1; i<=p; i++){
  32.         if (v[i]==1) cout<<"2";
  33.         if (v[i]==2) cout<<"6";
  34.         if (v[i]==3) cout<<"9";
  35.         if (v[i]==4) cout<<"3";
  36.     }
  37.     cout<<endl;
  38. }
  39.  
  40. void back (int k, int p){
  41.  
  42.     if (solutie (k, p)) tipar (p);
  43.     else{
  44.         init (k);
  45.         while (existaSuccesor(k)){
  46.             if (valid(k)) back (k+1, p);
  47.         }
  48.     }
  49. }
  50. int main()
  51. {
  52.     for (int i=1; i<=4; i++){
  53.         back (1, i);
  54.     }
  55.     return 0;
  56. }
Advertisement
RAW Paste Data Copied
Advertisement