ajutor!!!
Cerința

Scrieți un program care să afișeze, în ordine crescătoare, toate numerele naturale formate din câte n cifre și care au suma cifrelor egală cu s, precum și câte astfel de numere există.

Date de intrare

Programul citește de la tastatură numerele naturale n și s, separate prin spații.

Date de ieșire

Programul va afișa numerele determinate pe prima linie a ecranului, în ordine crescătoare, separate prin câte un spațiu. Pe a doua linie va afișa numărul acestor numere. Dacă nu există astfel de numere, va afișa valoarea 0 pe prima linie a ecranului.

Restricții și precizări

1 ≤ n ≤ 7

1 ≤ S <= 63
#3074 PE PBINFO
DACA SE POATE O VREAU DE 100 DE PUNCTE.Mulțumesc

Răspuns :

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

long int n, s, i, j, k, C = 0, suma, ck;

cin >> n;

cin >> s;

i = pow(10, n - 1);

j = pow(10, n) - 1;

for (k = i; k <= j; k++)

{

 suma = 0;

 ck = k;

 while (ck != 0)

 {

  suma = suma + ck % 10;

  ck = ck / 10;

 }

 if (suma == s)

 {

  cout << k << " ";

  C = C + 1;

 }

}

cout << endl;

cout << C;

return 0;

}

Explicație:

Am facut-o pe pbinfo dar imi da 80 de puncte, nu imi dau seama care e greseala dar daca ai vreo idee te rog sa-mi spui. Referitor la programul in sine, k este variabila cu care parcurgem numerele cu n cifre, "i" fiind cel mai mic numar cu n cifre, iar "j" cel mai mare. Il copiem pe k in variabila "ck", ca sa nu-i pierdem continutul, dupa care facem suma cifrelor. Daca este egala cu "s", il afisam pe k si contorul, care este "C", creste cu 1, intrucat trebuie sa-l afisam la final. Daca ai vreo intrebare, nu ezita sa mi-o adresezi :)