Rezolvare completă PbInfo #1925 Numar9

Cerința

Se dau două numere naturale S şi K. Să se afle cel mai mic număr natural A care are suma cifrelor egală cu S, precum şi restul împărţirii lui A la K.

Date de intrare

Fișierul de intrare numar9.in conține pe prima linie numerele naturale S şi K.

Date de ieșire

Fișierul de ieșire numar9.out va conține pe prima linie numărul A, iar pe a doua linie restul împărţirii lui A la K.

Restricții și precizări

  • 1 ≤ S ≤ 20.000.000
  • 1 ≤ K ≤ 1.000.000
  • Pentru prima cerinţă se acordă 60p, iar pentru a doua 40p
  • Pentru a primi punctajul pentru a doua cerinţă, în fişierul numar9.out trebuie să afişaţi două numere

Exemplu

numar9.in

25 13

numar9.out

799
6

Explicație

Cel mai mic număr natural care are suma cifrelor egală cu 25 este 799. Restul împărţirii lui 799 la 13 este 6.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Numar9:

#include <fstream>
#define a 999999999

using namespace std;
ifstream f("numar9.in");
ofstream g("numar9.out");

long long s , k , i , r , c , x , m , n ;

int main()
{
    f >> s >> k ;
    r = s % 9 ;
    c = s / 9 ;
    m = c / 9 ;
    n = c % 9 ;
    if ( r != 0 ) g << r ;
    x = r % k ;
    for ( i = 1 ; i <= n ; i++ )
    {
         g << 9 ;
         x = ( x * 10 + 9 ) % k ;
    }
    for ( i = 1 ; i <= m ; i++ )
    {
         g << a ;
         x = ( x * 1000000000 + a ) % k ;
    }
    g << "\n" ;
    g << x ;

    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1925 Numar9

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1925 Numar9 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!