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 :)