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ăspunsuri la întrebare
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;
}