👤

cifre004 :Problema 2223 de pe pbinfo

Cerința Se dă n număr natural. Aflaţi cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui n. Date de intrare Programul citește de la tastatură numărul n. Date de ieșire Programul va afișa pe ecran cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui n. Restricții și precizări 1 ≤ n ≤ 2.000.000.000


Răspuns :

#include <iostream>

using namespace std;

int main()

{

   int n,  cif, sumacifn=0, n9, r9, i, j;

   char num[91];

   cin >> n;

   int copie=n;

   while (copie) {  cif=copie%10; copie/=10; sumacifn+=cif; }

   n9=sumacifn/9; r9=sumacifn%9;

  int numar [91];

  for (j=1; j<=n9; ++j) numar[j]=9;

  if (n9==0) { j=1; numar[j]=r9; }

  else {  numar[j]=r9; }

  for (i=j+1; i<=sumacifn; ++i)  numar[i]=0;

   for (i=1; i<=sumacifn; ++i)

   {

       num[i]=numar[i]+'0';

   }

   for (i=1; i<=sumacifn; ++i) cout << num[i];

    cout << "\n";

   return 0;

}