Backtracking cifre distincte pare alaturate

Folosind metoda backtracking, sa se afiseze toate nr din n cifre distincte a.i. sa nu fie 2 cifre pare alaturate


#include<iostream.h>
#include<conio.h>
#include<math.h>
int st[20],n,k,p;

int valid(int p)
{if(p==1 && st[p]==0) return 0;
for(int i=1;i<p;i++)
if(st[i]==st[p]) return 0;
if(p>1 && st[p]%2==0 && st[p-1]%2==0) return 0;
return 1;}

int sol(int p)
{return (p==n);}

void tipar(int p)
{for(int i=1;i<=p;i++) cout<<st[i];
cout<<endl;
}

void bkt(int p)
{
int val;
for(val=0;val<=n;val++)
{
st[p]=val;
if(valid(p)) if(sol(p))
tipar(p);
else bkt(p+1);
}
}

void main()
{cout<<"n=";cin>>n;
bkt(1);
getch();
}


Comments (1)
  • hirtie raluca alexandra  - aha
    avatar
    nu e corect. de ce nu ati scris cifrele pe care vi-leam cerut?
    de ce?
Scrieti comentariu
Your Contact Details:
Gravatar enabled
Comentarii: