Se citesc numerele naturale n şi S, unde n poate fi 2, 3, 4 sau 5. Să se afişeze toate numerele de n cifre care au cifrele în ordine strict crescătoare, iar suma cifrelor este S. De exemplu, pentru n=2 şi S=10, se vor afişa 19, 28, 37, 46.
Răspunsuri la întrebare
Răspuns de
2
#include <iostream>
using namespace std;
int n,s,i,y,sumcif,nrcifdesc,c1,c2;
int main ()
{cin>>n>>s;
if (n==2) {i=10;
n=99;}
else
if (n==3) {i=100;
n=999;}
else
if (n==4) {i=1000;
n=9999;}
else
if (n==5) {i=10000;
n=99999;} //am vazut cate cifre are numarul ca sa stim cum pornim
for (i=1;i<=n;i++)
{nrcifdesc=0;
y=i;
sumcif=0;
while (y>0)
{c=y%10; //extragem cifra
y=y/10; //o dam la o parte
sumcif=sumcif+c; //o adunam la suma
}
y=i;
while (y>0)
{c1=y%10; //extragem o cifra
c2=y/10%10; //o extragem si pe a doua
y=y/10; //dam o cifra la o parte
if (c1<c2) //verificam daca sunt in ordine descrescatoare
nrcifdesc++; //crestem cifrele in ordine descrescatoare
}
if (nrcifdesc==0&&sumcif==s) //daca suma cifrelor e s si nu avem cifre in ordine descrescatoare=>cifrele sunt in ordine crescatoare
cout<<i<<endl; (endl sau '\n' depinde ce folosesti) //afisam cifra
}
return 0;
}
using namespace std;
int n,s,i,y,sumcif,nrcifdesc,c1,c2;
int main ()
{cin>>n>>s;
if (n==2) {i=10;
n=99;}
else
if (n==3) {i=100;
n=999;}
else
if (n==4) {i=1000;
n=9999;}
else
if (n==5) {i=10000;
n=99999;} //am vazut cate cifre are numarul ca sa stim cum pornim
for (i=1;i<=n;i++)
{nrcifdesc=0;
y=i;
sumcif=0;
while (y>0)
{c=y%10; //extragem cifra
y=y/10; //o dam la o parte
sumcif=sumcif+c; //o adunam la suma
}
y=i;
while (y>0)
{c1=y%10; //extragem o cifra
c2=y/10%10; //o extragem si pe a doua
y=y/10; //dam o cifra la o parte
if (c1<c2) //verificam daca sunt in ordine descrescatoare
nrcifdesc++; //crestem cifrele in ordine descrescatoare
}
if (nrcifdesc==0&&sumcif==s) //daca suma cifrelor e s si nu avem cifre in ordine descrescatoare=>cifrele sunt in ordine crescatoare
cout<<i<<endl; (endl sau '\n' depinde ce folosesti) //afisam cifra
}
return 0;
}
HariSeldon:
In loc de struct if de la inceput puteai zice direct i = pow(10,n-1);
Alte întrebări interesante
Fizică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă