Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: cmmmc pentru n numere  (Citit de 29504 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Sycron
Client obisnuit
**

Karma: -141
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« : Februarie 18, 2008, 14:42:10 »

Cateva idei??

P.S. : NU functioneaza un algoritm gen:

sirul a1,a2,a3, ... an
cmmmc(a1,a2);
cmmmc( (cmmmc(a1,a2)) ,a3);
....etc

nu functioneaza...


Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #1 : Februarie 18, 2008, 14:55:30 »

Ba functioneaza. Numai ca trebuie sa fii sigur ca se incadreaza in tipurile de date pe care le declari. Tie probabil nu iti da pe un test in care cmmmc e mai mare decat tipul int. Sau cand afli pentru 2 numere, trebuie sa fii sigur ca si produsul lor se incadreaza in int.
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
Sycron
Client obisnuit
**

Karma: -141
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #2 : Februarie 18, 2008, 17:18:49 »

pentru 2 numere merge, problema apare atunci cand sunt mai mult de 3 numere, uite un exemplu:
2,4,8,16 (cmmmdc=2; cmmmcprin metoda de mai sus=144) cmmmccorect=24

P.S.: Inafara de metoda cu descompunerea in factori primi(asta e pentru elevi cat de cat mai avansati, dar nu si pentru colegii mei din clasa:D)
Memorat
recviem
Client obisnuit
**

Karma: -26
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #3 : Februarie 18, 2008, 17:42:50 »

pentru 2 numere merge, problema apare atunci cand sunt mai mult de 3 numere, uite un exemplu:
2,4,8,16 (cmmmdc=2; cmmmcprin metoda de mai sus=144) cmmmccorect=24

P.S.: Inafara de metoda cu descompunerea in factori primi(asta e pentru elevi cat de cat mai avansati, dar nu si pentru colegii mei din clasa:D)

Neutral

corect e 16.
Si formula merge: cmmmc(2,4)=4 cmmmc(4,8)=8 ( 4 fiind cmmmc(2,4) ), cmmmc(8,16)=16 (8 fiind cmmmc(4,8))..
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #4 : Februarie 18, 2008, 18:41:15 »

pentru 2 numere merge, problema apare atunci cand sunt mai mult de 3 numere, uite un exemplu:
2,4,8,16 (cmmmdc=2; cmmmcprin metoda de mai sus=144) cmmmccorect=24

P.S.: Inafara de metoda cu descompunerea in factori primi(asta e pentru elevi cat de cat mai avansati, dar nu si pentru colegii mei din clasa:D)

Probabil fctia ta , cmmmc(a,b) e gresita.
Memorat
Sycron
Client obisnuit
**

Karma: -141
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #5 : Februarie 18, 2008, 21:17:25 »

hmm... ciudat... am incercat azi cu doamna profesoara un exemplu care nu functiona pe baza acestui algoritm ...
vad eu cum fac...

Multumesc!
Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #6 : Februarie 18, 2008, 23:03:36 »

Aici nu se pune in discutie algoritmul pentru cmmmc al unui sir. Ca ideea sigur este corecta, si daca te chinui nitel poti sa faci si demonstratia prin inductie. Ideea este ca algoritmul tau pentru cmmmc nu este bun. Ca sa iti dau un hint unde cred eu ca gresesti.
pentru :
8 si 16 cmmdc este 8 (nu 2 cum presupui tu) 8*16=128/8=16  Dancing

Memorat
Sycron
Client obisnuit
**

Karma: -141
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #7 : Februarie 22, 2008, 18:14:09 »

aşa este ...
nu foloseam corect funcţia cmmdc .. acum am înţeles-o.

P.S.: Foloseam un algoritm (făcut de mine, mai vechi) care nu era bine conceput , la vremea aceea nu ştiam cine ştie ce informatică ..


whatever , s-a rezolvat!
Memorat
lache92
Strain


Karma: -10
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #8 : Martie 17, 2008, 19:59:30 »

uitati aici un cod:
Cod:
#include <iostream.h>
#include <conio.h>

int cmmdc(int a, int b) {
    if (b == 0)
       return a;
    else
       return cmmdc(b, a%b);
}

int main() {
     int n, i, s[100], cmmmc = 1;
     cout<<"Cate numere: ";cin>>n;
     for (i = 0; i < n; i++)
         cin>>s[i];
     for (i = 0; i < n; i++)
         cmmmc = cmmmc * s[i]/cmmdc(cmmmc, s[i]);
     cout<<"Cel mai mic multiplu comun este: "<<cmmmc;
     getche();
     return 0;
}
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #9 : Martie 17, 2008, 20:27:33 »

getche();
Huh Shocked
Memorat
alexthero
De-al casei
***

Karma: 121
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #10 : Martie 17, 2008, 20:52:32 »

Ce are functia getche (in afara ca e deprecated)?
Memorat

Tine minte ca mintea conduce pumnu, nu invers
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #11 : Martie 17, 2008, 21:18:36 »

Care este diferenta dintre getch() si getche() ?
Memorat
alexthero
De-al casei
***

Karma: 121
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #12 : Martie 17, 2008, 21:23:04 »

getch - citeste un caracter de la intrare
getche - citeste un caracter si il afiseaza pe ecran

getche nu e standard
Memorat

Tine minte ca mintea conduce pumnu, nu invers
lache92
Strain


Karma: -10
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #13 : Martie 18, 2008, 20:38:10 »

nu e dar face treaba.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines