Permutări

#include<iostream>

int n,st[10],i;

void initializare ()

{ for(i=1;i<=10;i++)

st[i]=0;}

void tiparire (int p)

{ for(i=1;i<=p;i++)

{cout<<st[i]<<" ";

cout<<endl;}

int validare (int p)

{ for(i=1;i<=p-1;i++)

if ( st[p]==st[i]) return 0;

else return 1; }

void back (int p)

{int val;

for( val=1; val<=n; val++)

{st[p]=val;

if (validare(p))

if(p==n)

tiparire(p);

else back(p+1);}}

int main ()

{cin>>n; back(1);

return 0;}