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

Se citește de la tastatură un număr natural k (k<=100), apoi se citesc de la tastatură perechi de numere x, y (x < y sau x > y) până când se citesc 2 numere egale. Determinați și afișați pe ecran, pe câte o linie a ecranului, pentru fiecare interval [x, y], numărul de multipli ai lui k, precum și primul și ultimul multiplu al lui k. Dacă în intervalul [x, y] nu există nici un multiplu al lui k se va afișa mesajul NU EXISTA. Valorile determinate vor fi afișate pe ecran conform exemplului de mai jos. Exemplu: dacă pentru k se citește valoarea 13 și apoi se citesc perechile 5 9, 10 2, 100 4, 7 25, 31 7, 9 1, 67 5, 4 4 se vor afișa valorile Intervalul [5 9]: NU EXISTA Intervalul [2 10]: NU EXISTA Intervalul [4 100]:primul=13; ultimul=91; nr. multipli=7 Intervalul [7 25]:primul=13; ultimul=13; nr. multipli=1 Intervalul [7 31]:primul=13; ultimul=26; nr. multipli=2 Intervalul [1 9]: NU EXISTA Intervalul [5 67]:primul=13; ultimul=65; nr. multipli=5

Răspunsuri la întrebare

Răspuns de Levi20
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int k,x,y;

   cout<<"k=";

   cin>>k;//enter

   cout<<"Perechile sunt: ";//fara virgule, scrise pe aceeasi linie sau enter dupa fiecare pereche

   cin>>x>>y;

   while(x!=y)

   {

       if(y<x)

       {

           int aux;

           aux=x;

           x=y;

           y=aux;

       }

       if(k==0)

       {

       if(x==0)

       cout<<"Intervalul ["<<x<<","<<y<<"]:"<<"primul=0; ultimul=0; nr.multipli=1\n";

       else

       cout<<"Intervalul ["<<x<<","<<y<<"]:NU EXISTA\n";

       }

       else

       {

       int nr=0;

       if(x==0)

       nr=y/k+1;

       else

       {

       if(y>=k)

       nr=y/k-x/k;

       if(x%k==0)

       nr++;

       }

       if(nr!=0)

       cout<<"Intervalul ["<<x<<","<<y<<"]:"<<"primul="<<y/k*k-k*(nr-1)<<"; ultimul="<<y/k*k<<"; nr.multipli="<<nr<<"\n";

       else

       cout<<"Intervalul ["<<x<<","<<y<<"]:NU EXISTA\n";

       }

       cin>>x>>y;

   }

   return 0;

}

Explicație:

O solutie, zic eu, completa.

Alte întrebări interesante