Informatică, întrebare adresată de anamariaany45p9ya3w, 8 ani în urmă

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ă.
Programul citește de la tastatură numerele naturale n și s, separate prin spații.
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

(Problema #3074 de pe pbinfo)

Răspunsuri la întrebare

Răspuns de boiustef
12

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,s,a,b=1,cnt=0;

   cin >> n >> s;

   for (int i=1; i<=n; ++i)

       b=b*10;

   a=b/10;

   for (int i=a; i<b; ++i)

   {

       int num=i, suma=0;

       while (num)

       {

           suma+=num%10;

           num/=10;

       }

       if (suma==s)

       {

           cout << i << " ";

           ++cnt;

       }

   }

   if (cnt!=0) cout << "\n" << cnt;

   else cout << cnt;

   return 0;

}

Explicație:

Alte întrebări interesante