Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Algoritmo da trasformare in php...problema

    Salve,
    io volevo portare un algoritmo e farlo in php.
    Si tratta di un algoritmo che presi due numeri trova il Massimo comun divisore.
    Io nn sono bravo col php...quindi ho avuto problemi.
    Eccovi l'algoritmo:
    Posti M e N due numeri interi e R il resto della divisione fra M e N si ha:
    1) Leggi M e N
    2) Se M > N (se falso nn serve) si fa M/N
    3) Si prende il resto di M/N (che mettiamo in R).
    4) Se R = 0 stampiamo N altrimenti si mette "N in M" e "R in N"
    5) Si rilegge m e n e si ritorna al punto 3 (2).

    In php non riesco a farlo anche se penso sia facile...inoltre come faccio a vedere se il resto è zero in php?
    Qualcuno di voi mi può scrivere questo script php completo e casomai mi spiega eventuali passaggi più complicati?
    Vi ringranzio in anticipo (se ho dimenticato qualche info fatemi sapere).
    Bye

  2. #2
    Codice PHP:

    if($m >= $n ) {

       while (
    $n 0)
       {
        
    $r $m $n;

          if(
    $r == 0) {  
           echo 
    $n;  
           
    $n false; }
               else {
                    
    $m $n;
                    
    $n $r;
                    }
          }

    } else  { echo 
    "errore";  } 
    c'e' poco da spiegare .... si spiega da se....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Si funziona...nn ho capito solo una cosa, perchè hai messo la percentuale?
    Codice PHP:
    $r=$m $n 
    Cioè nn riesco a capire (nn sono ferrato in matematica).
    Bye e grazie mille

  4. #4
    non e' una percentuale, e' il segno dell'operatore "modulo". Restituisce il resto di una divisione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    grande grazie mille!
    Se posso permettermi (scusa ma sono proprio noob) hai impostato n=false per far finire il ciclo, giusto? Altrimenti sarebbe andato all'infinito anche se trovava il risultato fino a che n > 0 giusto?
    Bye

  6. #6
    Originariamente inviato da apocaliv
    grande grazie mille!
    Se posso permettermi (scusa ma sono proprio noob) hai impostato n=false per far finire il ciclo, giusto? Altrimenti sarebbe andato all'infinito anche se trovava il risultato fino a che n > 0 giusto?
    Bye
    beh non proprio.... il ciclo finirebbe appena $n = 0 , ma quello che tu devi conoscere e' il valore di $n quando $n e' = 0 - 1 ciclo. In altre parole il valore di $n del "penultimo ciclo" perche' l'ultimo sara' sempre zero.

    Quindi appena $r = 0 si stampa $n e dopo di che si pone $n a false in modo da far terminare il ciclo while.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    grazie ^_^

  8. #8
    si potrebbe anche fare una funzione.... parando anche la possibilita' che si inserisca $n = 0

    Codice PHP:

    $m 
    200;
    $n 50;

    function 
    calcola_MCD($m$n) {
     
        
    $r $m $n;

        if(
    $r != 0) {
            
    $m $m $n
            
    $n $r;
            
    calcola_MCD($m$n);
           }
           
      return 
    $n;  
    }

    if(
    $m >= $n and $n 0) {  
        
    $res calcola_MCD($m$n); }
        else  { echo 
    "
    errore, dati non congruenti"
    ;
        exit;  } 

    echo 
    "
    $m - $n ==> MCD = $res 
    "


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    codice:
    function calcola_MCD($m, $n){
    	return ($r = $m % $n) ? calcola_MCD($n, $r) : $n;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Originariamente inviato da andr3a
    codice:
    function calcola_MCD($m, $n){
    	return ($r = $m % $n) ? calcola_MCD($n, $r) : $n;
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.