Informatică, întrebare adresată de stassahul, 9 ani în urmă

Un program de 100 puncte, va rog!(#966)

Fie X un număr natural format din exact K cifre, toate nenule, iar S suma cifrelor lui X. Pornind de la aceste numere, se construiește mulțimea M a tuturor numerelor naturale care:

au suma cifrelor egală cu S
sunt formate fiecare din exact K cifre, toate cifrele fiind nenule.
Pentru fiecare număr din mulțimea M se calculează produsul cifrelor sale. Fie P valoarea maximă a produselor calculate.

Cel mai mic număr din mulțimea M care are produsul cifrelor egal cu P îl vom denumi elementul primar al mulțimii.

Cerinţă
Scrieţi un program care să citească numerele K și X (cu semnificația din enunț) şi care să determine elementul primar al mulțimii M.

Date de intrare
Programul citește de la tastatură numerele K X, numărul X fiind format din K cifre.

Date de ieșire
Programul va afișa pe ecran un număr natural de K cifre reprezentând elementul primar al mulțimii M.

Restricții și precizări
1 ≤ K ≤ 33
toate cifrele lui X sunt nenule

Exemplu
Intrare

3
124
Ieșire

223
Explicație
Suma cifrelor numărului X=124 este S=7, iar mulțimea construită este: M = {115,151,511,124,142,214,241,412,421,133,313, 331,223,232,322}. Se obţin următoarele valori ale produselor cifrelor numerelor din M: 5,5,5,8,8,8,8,8,8,9,9,9,12,12,12. Valoarea P=12 se obţine pentru numerele: 223, 232 și 322, iar cel mai mic număr dintre acestea este 223. Astfel, elementul primar al mulțimii M este 223.



Răspunsuri la întrebare

Răspuns de express
11
#include <iostream>
using namespace std;

int main()
{
char cif;
int r , s = 0 , k , c;
cin >> k;
for(int i = 1 ; i <= k ; i++)
{
cin >> cif; 
s = s + cif - '0';
}
r = s % k; c = s / k;
for(int i = 1 ; i <= k - r ; i++)
cout << c;
c ++;
for(int i = 1 ; i <= r ; i ++)
cout << c;

return 0;
}


stassahul: Mersi!
Alte întrebări interesante