Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 13

COMBINARI SI COMBINATII

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
for(int i=1; i<=k-1; i++)
if (v[k]<=v[k-1])
return 0;
return 1;
}
void back(int k)
{
for(int i=1; i<=n; i++)
{
v[k]=i;
if (ok(k))
if(k==p)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n>>p;
back(1);
cout<<nr;
return 0;

suma cifre nebunie

#include<iostream>
using namespace std;
int v[100],n,p,nr,s;
void afisare(int k)
{
int s1=0;
for(int i=1;i<=k;i++)
s1=s1+v[i];
if(s1==s)
{
for(int i=1;i<=k;i++)
cout<<v[i];
cout<<endl;
}
}
int solutie(int k)
{
if(k==n)
return 1;
else
return 0;
}
int ok(int k)
{
return 1;

}
void back(int k)
{
for(int i=1; i<=9; i++)
{
v[k]=i;
if (ok(k))
if(solutie(k))
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n>>s;
back(1);
return 0;

}
19.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}

int ok(int k)
{
if(v[1]==0)
return 0;
return 1;
}
int solutie(int k)
{
return k==n;
}
void back(int k)
{
for(int i=0; i<=4; i++)
{
v[k]=i;
if (ok(k))
if(solutie(k))
afisare(k);
else
back(k+1);
}
}
int main()
{
n=4;
back(1);
return 0;

21.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}

int ok(int k)
{
for(int i=1;i<k;i++)
{
if(k==n && v[k]%2!=0 || v[k]==v[i])
return 0;
}
return 1;
}
int solutie(int k)
{
return k==n;
}
void back(int k)
{
for(int i=1; i<=3; i++)
{
v[k]=i;
if (ok(k))
if(solutie(k))
afisare(k);
else
back(k+1);
}
}
int main()
{
n=3;
back(1);
return 0;

18.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}

bool ok(int k){


if(k == 1)
return true;
if(v[k] > v[k-1])
return true;
return false;
}
int solutie(int k)
{
return k==4;
}
void back(int k){
for(int i=v[k-1]+1;i<=n;i++)
{
v[k]=i;
afisare(k);
back(k+1);
}
}
int main()
{
n=6;
back(1);
return 0;

7.
#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}
int ok(int k)
{
if(v[k]<=v[k-1])
return 0;
if(k==n && v[k]!=6)
return 0;
return 1;
}
void back(int k)
{
for(int i=1; i<=9;i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
return 0;

15.
#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}

int ok(int k)
{
if(v[1]==0)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=8;i=i+4)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
return 0;

20.
#include<iostream>
#include<cmath>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
if(abs(v[1]-v[4])==2 && abs(v[2]-v[3])==2)
cout<<v[i]<<" ";
}
cout<<endl;

int ok(int k)
{
for(int i=1;i<k;i++)
{
if(v[k]==v[i])
return 0;
if(v[1]==0)
return 0;
}
return 1;
}
void back(int k)
{
for(int i=0; i<=9;i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
return 0;

16.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
return 1;
}
void back(int k)
{
for(int i=1; i<=9; i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
cout<<nr;
return 0;

17.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
for(int i=1; i<k; i++)
if (v[k]==v[i])
return 0;
return 1;
}
void back(int k)
{
for(int i=2; i<=6; i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
cout<<nr;
return 0;

14.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
for(int i=1; i<k; i++)
if (v[k]==v[i])
return 0;
if(k==1 && v[k]==0)
return 0;
if(v[k]%2==0 && v[k-1]%2==0)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=9; i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
cout<<nr;
return 0;

13.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
return 1;
}
void back(int k)
{
for(int i=0; i<=1; i++)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
cout<<nr;
return 0;

12.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
return 1;
}
void back(int k)
{
for(int i=3; i<=7; i=i+2)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
cin>>n;
back(1);
cout<<nr;
return 0;

11.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
for(int i=1;i<k;i++)
if(v[k]==v[i])
return 0;
if(k==1 && v[k]==0)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=8; i=i+2)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
n=4;
back(1);
cout<<nr;
return 0;

10.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
for(int i=1;i<k;i++)
if(v[k]==0 && v[k-1]==0)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=1; i=i+1)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
n=5;
back(1);
cout<<nr;
return 0;
}

9.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
if(v[k]<=v[k-1])
return 0;
if(k==1 && v[k]!=5)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=9; i=i+1)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
n=5;
back(1);
cout<<nr;
return 0;

8.

#include<iostream>
using namespace std;
int v[100],n,p,nr;
void afisare(int k)
{
for(int i=1;i<=k;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
nr++;
}

int ok(int k)
{
if(v[k]<=v[k-1])
return 0;
if(v[k]%2==v[k-1]%2)
return 0;
return 1;
}
void back(int k)
{
for(int i=0; i<=9; i=i+1)
{
v[k]=i;
if (ok(k))
if(k==n)
afisare(k);
else
back(k+1);
}
}
int main()
{
n=5;
back(1);
cout<<nr;
return 0;

7.

You might also like