Kezdőoldal » Számítástechnika » Programozás » Hogyan írjak egy legkisebb...

Hogyan írjak egy legkisebb közös többszöröst számoló programot?

Figyelt kérdés

Valami(A,B,C,D):

AA:=A; BB:=B; CC:=C

Ciklus amíg nem(A=B és B=C)

Ha A>B akkor B:=B+BB

Ha B>C akkor C:=C+CC

Ha C>A akkor A:=A+AA

Ciklus vége

D:=A

Eljárás vége.


Ezt kaptam segítségül,de hogyan tovább.



2016. okt. 31. 13:25
1 2
 11/17 A kérdező kommentje:
Ennek mintájára felírni egy programot.Próbáltam úgy hogy két szám szorzatát elosztani a legnagyobb közös többszörössel de ha több számmal próbálom nem jó.
2016. okt. 31. 17:06
 12/17 anonim ***** válasza:

Sok számnál js-ben


<script>

var szamok = new Array(2,5,8,13);

function kozos(szamok){

var max = 0;

for(i=0;i<szamok.length;i++){

max = Math.max(max,szamok[i]);

}

var tobbszoros = false;

var j=1;

var k=0;

while(!tobbszoros){

for(i=0;i<szamok.length;i++){

if((max*j)%szamok[i]==0){

k++;

tobbszoros = max*j;

}

else{

tobbszoros = false;

i=szamok.length;

}

}


j++;

}

return(tobbszoros);

}

alert(kozos(szamok));

</script>

2016. okt. 31. 18:10
Hasznos számodra ez a válasz?
 13/17 anonim ***** válasza:
Mondjuk lehetne jóval egyszerűbben is, de az optimalizálás feláras. :D
2016. okt. 31. 18:11
Hasznos számodra ez a válasz?
 14/17 anonim ***** válasza:

Ja bocs, ilyesmi (debuggold :D)


<script>

var szamok = new Array(2,4,5,13);

function kozos(szamok){

var max = 0;

for(i=0;i<szamok.length;i++){

max = Math.max(max,szamok[i]);

}

var tobbszoros = false;

var j=1;

var k=0;

while(!tobbszoros){

for(i=0;i<szamok.length;i++){

if((max*j)%szamok[i]==0){

k++;


}

else{

tobbszoros = false;

i=szamok.length;

}

if(k==4){

tobbszoros = max*j;

}

k = 0;

}


j++;

}

return(tobbszoros);

}

alert(kozos(szamok));

</script>

2016. okt. 31. 18:14
Hasznos számodra ez a válasz?
 15/17 tabaki ***** válasza:
Áruld már el, mi a fene az a D paraméter, mert az algoritmusod szerint semmit sem csinál, csak felülírod A-val, akármit adtál meg benne.
2016. nov. 1. 10:17
Hasznos számodra ez a válasz?
 16/17 tabaki ***** válasza:

Egy kísérlet, a kétes D nélkül:


#include <iostream>


int lkkt(int a, int b, int c)

      {

      int aa = a;

      int bb = b;

      int cc = c;

      while(not (a == b && b == c)){

            if(a > b) b += bb;

            if(b > c) c += cc;

            if(c > a) a += aa;

            }

      return a;

}


int main()

      {

      std::cout << "lkkt(1, 2, 3) = " << lkkt(1, 2, 3) << "\n";

      std::cout << "lkkt(2, 3, 4) = " << lkkt(2, 3, 4) << "\n";

      std::cout << "lkkt(3, 4, 5) = " << lkkt(3, 4, 5) << "\n";

      return 0;

      }

2016. nov. 1. 10:39
Hasznos számodra ez a válasz?
 17/17 A kérdező kommentje:
Köszönöm a segítséget :)
2016. nov. 1. 17:28
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!