Cerinţa
Să se scrie un program care citește un șir de n numere naturale şi determină cea mai mică fracţie care poate fi scrisă cu numărătorul şi numitorul dintre cele n numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale nenule, separate prin spaţii.
Date de ieşire
Programul afișează pe ecran numărul fracţia cerută, în forma x/y.
Restricţii şi precizări
0 < n < 1001
cele n numere citite vor fi mai mici decât 2.000.000.000
fracţia afişată va fi ireductibilă
Exemplu
Intrare
5
6 10 3 2 5
Ieșire
1/5
Explicație
Cea mai mică fracţie care se poate scrie cu numerele din şire este 2/10. Prin simplificare se obţine fracţia ireductibilă 1/5.
AM DOAR 50 DE PUNCTE
#include
using namespace std;
long long x;
int n,i,a,maxim=-99,minim=99,b,r;
int main()
{cin>>n;
for(i=1;i<=n;i++){
cin>>x;
if(x>maxim)
maxim=x;
if(x
minim=x;
a=minim;
b=maxim;
while(b!=0){
r=a%b;
a=b;
b=r;
}
}
cout << minim/a <<"/"<
return 0;
}
artur99:
Cred că s-a stricat sursa când ai postat-o. Ai putea să o pui pe http://pastebin.com/
Răspunsuri la întrebare
Răspuns de
2
Problemele apar atunci cand folosesti limitele numerelor din sir.
In primul rand,spune ca numerele sunt naturale, deci poti incepe cu
maxim=0;
(nu exista numere negative)
In al doilea rand, tu ai setat minimul ca 99. Dar numerele sunt mai mici decat 2 miliarde. Deci poate exista cazul in care toate numerele sunt mai mici decat 99 din sir: ex: 100,101,4323,231,321
In acest caz, nu vei obtine minimul sirului, ci vei avea minim=99
Pentru a remedia problema, alege valoare initiala pentru minim valoarea maxima a intervalului: minim=2000000000;
In primul rand,spune ca numerele sunt naturale, deci poti incepe cu
maxim=0;
(nu exista numere negative)
In al doilea rand, tu ai setat minimul ca 99. Dar numerele sunt mai mici decat 2 miliarde. Deci poate exista cazul in care toate numerele sunt mai mici decat 99 din sir: ex: 100,101,4323,231,321
In acest caz, nu vei obtine minimul sirului, ci vei avea minim=99
Pentru a remedia problema, alege valoare initiala pentru minim valoarea maxima a intervalului: minim=2000000000;
Răspuns de
5
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă