Rezolvare completă PbInfo #3200 neaDragulin

Cerința

Nea Drăgulin are un număr natural n pe care îl scrie de k ori, unul după altul. Aflaţi restul împărţirii numărului astfel obţinut la 72.

Date de intrare

Programul citește de la tastatură numerele n şi k.

Date de ieșire

Programul va afișa pe ecran restul împărţirii numărului obţinut la 72.

Restricții și precizări

  • 1 ≤ n , k ≤ 2.000.000.000

Exemplu

Intrare

51 3

Ieșire

63

Explicație

Nea Drăgulin scrie numărul 51 de 3 ori obţinând numărul 515151. Restul împărţirii acestuia la 72 este 63.

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 neaDragulin:

#include <iostream>

using namespace std;
long long n, k, x, nrcifre, sumacifre, rest1, rest2, rest;

int main()
{
    cin >> n >> k;
    if(k == 1) rest = n % 72;
    else
    {
        x = n;
        nrcifre = 0;
        sumacifre = 0;
        while(x != 0)
        {
            nrcifre++;
            sumacifre += x % 10;
            x = x / 10;
        }
        sumacifre = sumacifre * k;
        rest1 = sumacifre % 9;
        if(nrcifre >= 3) rest2 = (n % 1000) % 8;
        else if(nrcifre == 2) rest2 = ((n % 10) * 100 + n % 100) % 8;
             else
             {
                 if(k == 2) rest2 = (11 * n) % 8;
                 else rest2 = (111 * n) % 8;
             }
        if(9 * rest2 - 8 * rest1 >= 0) rest = (9 * rest2 - 8 * rest1) % 72;
        else rest = (9 * rest2 - 8 * rest1 + 72) % 72;
    }
    cout << rest;
    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 #3200 neaDragulin

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3200 neaDragulin 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!