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
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
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă