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<=9;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();
}
{joscommentenable}