Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //permutari.h
- #ifndef L2P2_H
- #define L2P2_H
- #define MAXN 20
- #pragma once
- #include <iostream>
- using namespace std;
- int eValid(int k,int v[]);
- void afisare(int n,int &nrSol,int v[]);
- void genPerm(int n,int &nrSol,int v[],int k);
- #endif;
- //permutari.cpp
- #include"permutari.h"
- int eValid(int k,int v[])
- {
- int i,rez;
- for(rez=1,i=0;rez&&(i<k);i++)
- rez=rez&&(v[k]!=v[i]);
- return rez;
- }
- void afisare(int n,int &nrSol,int v[])
- {
- int i;
- cout<<++nrSol<<" : ";
- for(i=0;i<n;i++)
- {
- cout<<v[i]<<" ";
- cout<<endl;
- }
- }
- void genPerm(int n,int &nrSol,int v[],int k)
- {
- if(k==n)
- {
- afisare(n,nrSol,v);
- }
- else
- {
- int i;
- for(i=1;i<=n;i++)
- {
- v[k]=i;
- if(eValid(k,v))
- genPerm(n,nrSol,v,k+1);
- }
- }
- }
- //main.cpp
- #include"permutari.h"
- int main()
- {
- int n,v[MAXN],nrSol;
- nrSol=0;
- do{
- cout<<"n=";
- cin>>n;
- }while((n<=0)||(n>MAXN));
- genPerm(n,nrSol,v,0);
- cout<<"nrSol="<<nrSol<<endl;
- system("Pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement