👤

Cerința
Se dau numerele naturale n, c și r. Să se determine numărul minim m, strict mai mare decât n, care dă restul r prin împărțire la c.

Date de intrare
Programul citește de la tastatură numerele n, c și r.
Date de ieșire
Programul va afișa pe ecran numărul m.

Restricții și precizări
1 ≤ n ≤ 1.000.000.000.000
0 ≤ r < c ≤ 1.000.000.000.000

Exemplu
Intrare
30 7 1
Ieșire
36

!!! Soluția problemei este fie (n / c) * c + r, fie (n / c + 1) * c + r
!!! Fara structuri repetitive!
PbInfo #3925 o solutie de 100 de puncte daca ma poate ajuta cineva.


Răspuns :

Varianta 1:

#include <iostream>

using namespace std;

int main() {

long long n, c, r, m;

cin >> n >> c >> r;

if(n % c >= r)

{

m = (n / c + 1) * c + r;

}

else

{

m = (n / c) * c + r;

}

cout << m;

return 0;

}

Varianta 2:

#include <iostream>

using namespace std;

int main() {

long long n, c, r, m;

cin >> n >> c >> r;

if(n % c >= r)

{

m = n + r - n % c + c;

}

else

{

m = n + r - n % c;

}

cout << m;

return 0;

}