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:
#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.