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

cifre004
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


Exemplu

Intrare

203

Ieșire

50000

Explicație

Avem n=203, iar suma cifrelor sale este 5. Cel mai mare număr de 5 cifre, care are suma cifrelor egală cu 5, este 50000.

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
9

ti-am facut o rezolvare dar atentie ca suma cifrelor sa nu depaseasca 19 pentru ca nu se pot reprezenta mai mult de 19 cifre(limitarea maxim a tipului  unsigned long long).

Problema se poate face si sa afisezi cifra cu cifra acel numar doar daca memorezi fiecare cifra intr-un vector si atunci nu mai ai probleme de genu.


#include <iostream>

using namespace std;

int main() {

   long n;

   cout<<"n=";

   cin>>n;

   int s=0;

   while(n!=0)

   {

       s+=n%10;

       n = n/10;

   }

   unsigned long long numar=0;

   int nr_9 = s/9;

   int rest = s % 9;

   for(int i=0; i<nr_9; i++)

       numar=numar*10+9;

   numar=numar*10+rest;

   for(int i=0; i<s-nr_9-1; i++)

       numar*=10;

   cout<<numar;

   return 0 ;

}

Alte întrebări interesante