Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    26

    Ricorsione in C++:esempio che non capisco.

    Non capisco questo esempio di ricorsione:

    PS:
    Non so fare le parentesi graffe e al posto di queste ci metto le quadre.


    #include <iostream>
    using namespace std;

    int fact(int n);

    int main()

    int A

    [cout << "inserisci un numero intero:\n";
    cin >> A
    cout << "il fattoriale di "<< A << " è :" << fact(A);
    cout <<"\n";

    int fact (int n)
    [
    int ans;
    if (n==1) return(1);
    ans = fact(n-1)*n;
    return (ans);
    ]

    return 0;
    ]

    DOMANDA:
    allora,
    se ad A do il valore di 1,una volta entrato nella funzione fact la condizione if sarà verà e allora "attiverò" l'istruzione return(1) che restituirà a fact il valore di 1 e mi apparirà:

    il fattoriale di 1 è 1


    SUPPONIAMO ADESSO che A sia 4:
    entro come al solito all'interno della funzione fact ma questa volta l'if non è verificato.
    salto dunque l'istruzione return(1) e vado sotto.
    Cosa trovo sotto???
    trovo:

    ans = fact(n-1)*n;
    return (ans)

    avrò allora,per n=4:

    ans=fact(4-1)*4 cioè ans=fact(3)*4
    ma a questo punto ,richiamando fact da dove riparto?
    dall'inizio del blocco(riverificando la condizione if) oppure rimango in loop sull'istruzione ans = fact(n-1)*n?

    Mi sfugge il meccanismo!!
    potete descrivermelo step per step e farmi notare quale istruzione devo tenere sott'occhio istante per istante??
    Grazie mille

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    26
    Originariamente inviato da DydBoy
    http://projects.cli.di.unipi.it/Mast...ione/main.html
    grazie

  4. #4
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Per così poco.

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.