•voinicel
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #75 : Mai 05, 2010, 20:13:34 » |
|
|
|
« Ultima modificare: Mai 05, 2010, 21:33:13 de către Sima Cotizo »
|
Memorat
|
|
|
|
•mathboy
|
 |
« Răspunde #76 : Mai 05, 2010, 20:25:13 » |
|
Pentru ca atunci cand cmmdc (a, b) este 1 tu afisezi mai intai 1, apoi 0. Corect ar fi sa afisezi doar 0.
|
|
|
Memorat
|
|
|
|
•adrian.m
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #77 : Decembrie 09, 2010, 13:26:34 » |
|
Mda, same problem. 50 puncte pentru perfectiune =). Np!
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #78 : Decembrie 09, 2010, 13:49:10 » |
|
Vezi ca atunci cand cmmdc e 1 afisezi 0.
|
|
|
Memorat
|
|
|
|
•adrian.m
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #79 : Decembrie 09, 2010, 20:33:20 » |
|
Aaa, caz particular ? 
|
|
|
Memorat
|
|
|
|
•mathboy
|
 |
« Răspunde #80 : Decembrie 09, 2010, 21:12:31 » |
|
De fapt scrie in enunt: pe prima linie: cel mai mare divizor comun pentru a si b. Daca a si b sunt numere prime intre ele, atunci se va tipari 0
|
|
|
Memorat
|
|
|
|
•alex94
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #81 : Martie 07, 2011, 20:24:04 » |
|
eu asha am facuto si asha cred cae cel mai simplu: #include<iostream.h> void cmmdc(); int main() { cmmdc(); return 0; } void cmmdc() { int a,b,n,i; cout<<"n="; cin>>n; cout<<"a="; cin>>a; cout<<"b="; cin>>b; for(i=n;i>=1;i--) if(a%i==0 && b%i==0) break; cout<<"Cmmdc al a si b este:"<<i; }
|
|
« Ultima modificare: Martie 08, 2011, 03:09:34 de către FMI - Paul-Dan Baltescu »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #82 : Martie 07, 2011, 21:16:04 » |
|
Pune-ti codul intre tagurile code, si in al doilea rand nu trebuie citit de la tastatura si cu .... chestiile acelea de afisat, trebuie citit din fisier.
|
|
|
Memorat
|
|
|
|
•alex94
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #83 : Martie 15, 2011, 18:25:43 » |
|
Varianta mea mi se pare cea mai usoara si nu include tot felul de algoritmi si si merge testatio daca vreti: #include<iostream> using namespace std; int main() { int a,b,i,n; cout<<"Dati n="; cin>>n; cout<<"Dati a="; cin>>a; cout<<"Dati b="; cin>>b; for(i=n;i>=1;i--) if(a%i==0 && b%i==0) break; cout<<endl; cout<<"CMMDC al"<<" "<<a<<" "<<"si"<<" "<<b<<" "<<"este"<<" "<<i; return 0; }
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #84 : Martie 15, 2011, 19:10:32 » |
|
In primul rand nu inteleg de ce ai nevoie de 3 numere cand tu vrei sa calculezi cmmdc-ul a 2 numere :-" (deci ai o greseala in gandire aici). In al doilea rand algoritmul e foarte ineficient. Daca incerci sa calculezi cmmdc-ul a nr destul de mari algoritmul tau va face foarte multe operatii si va dura foarte mult. Nu folosim algoritmi complicati doar ca se ne aflam in treaba sau ca sa ne dam noi mari, ci pentru ca sunt mai rapizi.
|
|
|
Memorat
|
|
|
|
•Tux2Nicolae
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #85 : Martie 18, 2011, 23:20:09 » |
|
Norok baeti ea spuneti si mie unde e greseala aici ? eu sunt din moldova noi invatam pascalul cu c++ de aceia va rog sa nu ma criticati tare  sunt incepator  #include <stdio.h> int main() { long int a,b,c,i; FILE *f1; FILE *f2; f1=freopen("cmmdc.in","r",stdin); f2=freopen("cmmdc.out","w",stdout); fscanf(f1,"%d %d",&a,&b); i=1; do { if ((a % i==0) and (b % i==0)){c=i;} i++; } while((a!=i+1) and (b!=i+1)); if (c==1) c=0; fprintf(f2,"%d\n",c); fclose(f1); fclose(f2); return 0; }
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #86 : Martie 19, 2011, 04:35:14 » |
|
In primul rand am impresia ca pe testul 4 8 algoritmul tau o sa dea 2 (nu iei in calcul ca cmmdc poate fi chiar unul dintre numere). De asemenea algoritmul tau e ineficient. Pentru o rezolvare eficienta cauta algoritmul lui Euclid.
|
|
|
Memorat
|
|
|
|
•Tux2Nicolae
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #87 : Martie 19, 2011, 11:35:37 » |
|
devilkind ... Iti multumesc foarte mult  Eu defapt am luat in consideratie si daca este una dintre cifre, doar ca am gresit putin in loc sa pun while((a!=i-1) and (b!=i-1)); am pus while((a!=i+1) and (b!=i+1)); Mersi mult am vazut unde este greseala privind algoritmul cred ca stiu o ideie mai buna doar ca trebu mai multe instructiuni de scris, adica daca cea mai mare cifra din cele doua este de exemplu 12 voi face un ciclu care voi cauta pina la 12/2 si daca se divid ambele numere de exemplu cu 2 si cu 3 inseamna ca se divid si cu 6 
|
|
|
Memorat
|
|
|
|
•DaNutZ2UuU
Strain
Karma: -7
Deconectat
Mesaje: 12
|
 |
« Răspunde #88 : Septembrie 28, 2011, 15:24:19 » |
|
Eu l-am rezolvat asa: #include<fstream> using namespace std; ifstream fin("cmmdc.in"); ofstream fout("cmmdc.out"); int main() {int a ,b, r; fin>>a>>b; while(a%b!=0) {r=a%b; a=b; b=r; } if(b==1)fout<<"0"; else fout<<b; fin.close(); fout.close(); return 0; }
si iau 100 puncte  1. Foloseste tag-ul [ code ] [/ code ] (fara spatii) cand mai postezi cod. 2. Care e utilitatea postului tau?
|
|
« Ultima modificare: Septembrie 28, 2011, 18:43:58 de către FMI - Paul-Dan Baltescu »
|
Memorat
|
|
|
|
•CosminRusu
|
 |
« Răspunde #89 : Octombrie 06, 2011, 15:07:15 » |
|
|
|
|
Memorat
|
|
|
|
•razvan242
Strain
Karma: 1
Deconectat
Mesaje: 3
|
 |
« Răspunde #90 : Noiembrie 08, 2011, 17:40:38 » |
|
Salut ! uite ce am facut eu!..: #include<fstream> using namespace std; ifstream fin("cmmdc.in"); ofstream fout("cmmdc.out"); int main() { int a,b,r,c; fin>>a>>b; while(r!=0) { r=a%b; a=b; b=r; } c=a; if(c==1)c=0; fout<<c; return 0; } Nu stiu ce e gresit , si as vrea o parere de la voi.  .Tin sa precizez ca sunt in clasa a 6-a[incepator].. Numai bine!
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #91 : Noiembrie 08, 2011, 20:03:28 » |
|
Banuiesc (nu stiu sigur) ca de la asta se trage : int a,b,r,c; Aceste variabile locale declarate o sa dea valori lui r aiurea, si while (r != 0) s-ar putea sa nu se executa, r fiind 0. Pune in loc de aia b != 0 (sau b > 0), e tot aia, ar trebui sa mearga.
|
|
|
Memorat
|
|
|
|
•caen1
Client obisnuit

Karma: 22
Deconectat
Mesaje: 75
|
 |
« Răspunde #92 : Noiembrie 08, 2011, 20:59:07 » |
|
Sau poti sa faci un do/while in loc de while-ul tau. Il va executa cel putin o data, deci r va fi modificat inainte de evaluare.
|
|
|
Memorat
|
|
|
|
•razvan242
Strain
Karma: 1
Deconectat
Mesaje: 3
|
 |
« Răspunde #93 : Noiembrie 09, 2011, 20:44:45 » |
|
Multumesc frumos , Spider! Acum am luat si eu 100 de puncte cu indicatia ta.  . Merci inca o data.
|
|
|
Memorat
|
|
|
|
•Trixer
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #94 : Ianuarie 17, 2012, 20:46:57 » |
|
Daca primiti 50 pct si sunteti siguri de rezolvare s-ar putea sa fie vorba de faptul ca daca cmmdc=1 atunci in fisier trebuie scris 0 si nu 1...a trebuit sa trimit problema de 3 ori ca sa vad asta...desi e aiurea ca 1 e si el divizor
|
|
|
Memorat
|
|
|
|
•crysty2pin
Strain
Karma: -2
Deconectat
Mesaje: 3
|
 |
« Răspunde #95 : Martie 20, 2012, 21:24:50 » |
|
Zau asa?! Iti bati joc de mine?! M-am chinuit sa fac problema si imi spune evaluare completa 0 puncte... Pana la urma fisierul sursa este cel de tipul .CPP nu?
|
|
|
Memorat
|
|
|
|
•laurion
|
 |
« Răspunde #96 : Martie 20, 2012, 21:31:45 » |
|
Zau asa?! Iti bati joc de mine?! M-am chinuit sa fac problema si imi spune evaluare completa 0 puncte... Pana la urma fisierul sursa este cel de tipul .CPP nu?
Da, fisierul .cpp trebuie trimis. Greseala ta este nu mai afisa si "CMMDC=", doar raspunsul:
|
|
|
Memorat
|
|
|
|
•crysty2pin
Strain
Karma: -2
Deconectat
Mesaje: 3
|
 |
« Răspunde #97 : Martie 20, 2012, 21:40:06 » |
|
OK mersi mult.
|
|
|
Memorat
|
|
|
|
|
•seby
Strain
Karma: -1
Deconectat
Mesaje: 4
|
 |
« Răspunde #99 : Septembrie 13, 2012, 09:30:02 » |
|
Am probleme cu CMMDC. Am incercat mai multe solutii si tot 50 de pct am primit  Later edit:  Merge orice metoda. Aveti grija cand sunt prime! Trebuie afisat 0 
|
|
« Ultima modificare: Septembrie 21, 2012, 01:36:15 de către Andrei Grigorean »
|
Memorat
|
|
|
|
|