Combinările de N luate câte K reprezintă toate modurile de a alege dintr-o mulțime de N elemente, exact K elemente, iar ordinea în care alegem elementele nu contează. De exemplu pentru K=2 și mulțimea{1,2,3}, 1,2 reprezintă aceeași combinare ca și 2,1.
Să se genereze toate combinările de N luate câte K in ordine lexicografică.

Date de intrare
De pe prima linie se vor citi numerele N și K.

Date de ieșire
Pe ecran se vor afișa combinările de N luate câte K, fiecare pe câte o linie. Numerele din cadrul unei combinări trebuie afișate în ordine crescătoare.

Restricții
1 ≤ K ≤ N ≤ 18

Exemplu
Date de intrare
5 3

Date de iesire
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
In C++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Răspuns :

Răspuns:

Explicație:

/ Suma cifrelor lui n

 

include<iostream.h>

int n,s,c;

void main()

{

cout<<„n=”;

cin>>n;

while(n!=0)

{

c=n%10; // extrag ultima cifra

s=s+c;

n=n/10; // tai ultima cifra

}

 

cout<<„Suma cifrelor=”<<s;

}

—————————————————————————–

// Numarul de cifre ale lui n

 

#include<iostream.h>

int n, nr;

void main()

{

cout<<„n=”;

cin>>n;

while(n!=0)

{

nr=nr+1;

n=n/10; // tai cifrele

}

cout<<„Nr. de cifre=”<<nr;

}

 

—————————————————————————–

// Inversul lui n

 

#include<iostream.h>

int n, inv,c;

void main()

{

cout<<„n=”;

cin>>n;

inv=0;

while(n!=0)

{

c=n%10;

inv=inv*10+c;

n=n/10;

}

cout<<„Inversul=”<<inv;

}

—————————————————————————

// Palindrom

 

#include<iostream.h>

int n,inv, c, copie;

void main()

{

cout<<„n=”;

cin>>n;

copie=n;

while(n!=0)

{

c=n%10;

inv=inv*10+c;

n=n/10;

}

if(copie==inv)

cout<<„Palindrom”;

else

cout<<„Nu”;

}

——————————————————————————-

 

// Numarul PRIM

#include<iostream.h>

int n, ok, d;

void main()

{

cin>>n;

d=2; ok=1;

while(d<=n/2&&ok==1)

if(n%d==0)

ok=0;

else

d++;

if(ok==1)

cout<<„Prim”;

else

cout<<„Nu”;

}

——————————————————————————-

// Descompunerea in factori primi

 

#include<iostream.h>

void main()

{

int a,d,p;

cout<<„=a”;

cin>>a;

d=2;

while(a>1)

{

p=0;

while(a%d==0)

{

p=p+1;

a=a/d;

}

if(p) // <=> if(p!=0)

cout<<d<<„^”<<p<<” „;

d++;

}

}

———————————————————————-

// Multimea divizorilor proprii ai lui n, adica in afara de 1 si n

 

#include<iostream.h>

int n,d;

void main()

{

cin>>n;

d=2;

while(d<=n/2)

{

if(n%d==0)

cout<<d<<” „; // afisez divizorii proprii ai lui n, care se pot gasi in [2,n/2]

d++;

}

}

 

———————————————-

// CMMDC a 2 nr a si b

#include<iostream.h>

int a,b;

void main()

{

cin>>a>>b;

while(a!=b)

if(a>b)

a=a-b;

else

b=b-a;

cout<<„CMMDC=”<<a;

}

———————————————–

 

// CMMMC

 

include<iostream.h>

int a,b,x,y;

void main()

{

cin>>x>>y;

a=x; b=y;

while(x!=y)

if(x>y)

x=x-y;

else y=y-x;

cout<<„CMMC=”<<(a*b)/x;

}