Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP: Murtoluvun yhteinen tekijä

k4supur3 [18.03.2010 14:47:50]

#

Terve.
Tietääkö kukaan miten murtoluvun yhteisen tekijän saisisi Eukleideen algoritmin avulla käyttäen toistorakennetta(muukin tapa tietysti kelpaa)?

Eukleideen algoritmi:
1080 / 1008 = 1 jää 72. 1008 / 72 = 14 jää 0. Siis syt(1080, 1008) = 72.

Chiman [18.03.2010 15:18:12]

#

<?php
$a = 1080;
$b = 1008;
while ($m = $a % $b) {
    $a = $b;
    $b = $m;
}
echo $b . "\n";

k4supur3 [18.03.2010 15:28:02]

#

Kiitoksia avusta, lisäsin alkuu vielä explode funktion niin nyt se toimii iha murtoluvujen kanssa!

jmp [18.03.2010 15:34:21]

#

Sehän onnistuu Chimanin koodilla. Sijoitat vain $a:n ja $b:n paikalle murtoluvun osoittajan ja nimittäjän. (EDIT: Näköjään ratkaisit jo tämän ja muokkasit viestiäsi.) Sama onnistuu myös rekursiota hyödyntämällä:

<?php
function syt($a, $b) {
    if ($b == 0)
        return $a;
    return syt($b, $a % $b);
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta