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

#2795 pbinfo:
Cerința
Subprogramul resturi are patru parametri, n, x, y și r, prin care primește câte un număr natural din intervalul [1,109], r
Scrieţi definiţia completă a subprogramului.

Restricții și precizări
1 ≤ r ordinea parametrilor este n x y r

Exemplu
Pentru n=200, x=5, y=14 și r=2, subprogramul returnează numărul 3 (pentru numerele 2, 72 și 142 atât restul împărțirii la 5, cât și restul împărțirii la 14, este 2).

Important
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

Codul meu da limita de timp depasita...

Răspunsuri la întrebare

Răspuns de pmarian98
6

#include <iostream>

using namespace std;

int resturi(int n, int x, int y, int r) {

   int nr = 0, i;

   // interschimb ca sa stiu ca in y voi avea valoarea mai mare

   if (x > y) {

       int temp = y;

       y = x;

       x = temp;

   }

   for (i = r; i <= n; i += y) {

       if (i % x == r)

           nr++;

   }

   return nr;

}


Dilau420: int cmmmc(int a, int b)
{
int x = a, y = b;
if(a == 0 && b == 0)
a = -1;
while(b != 0)
{
int r = a % b;
a = b;
b = r;
}
return (x * y) / a;
}

int resturi( int n, int x, int y, int r)
{
int k = cmmmc(x, y);
int contor = 0;
for(int i = r; i <= n; i += k)
{
if((i % x == r) && (i % y == r))
contor++;
}
return contor;
}
Alte întrebări interesante