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

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ăspunsuri la întrebare

Răspuns de Rayzen
9

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;

}


George2018: Mulțumesc mult!
Rayzen: Cu plăcere!
robisacuiu1: O alta varianta #include < iostream >

using namespace std;
long long int n,c,r,i,p;
int main()
{
cin>>n>>c>>r;
r=r+c*(n/c);
for(i=r;i<=n+c;i=i+c)
p=i;

cout< return 0;
}
robisacuiu1: acolo ca nu mi s-a pus era cout < < p
dumitruandramip7fxr1: a cerut fără structuri repetitive
Alte întrebări interesante