Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: C++ Creare Fattoriale

  1. #1

    C++ Creare Fattoriale

    Avrei bisogno di aiuto per creare un programma che calcoli il fattoriale di un numero!!... purtroppo non ho idee di come impostarlo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Sul forum ci sono decine di discussioni su come calcolare ("creare"? :D) il fattoriale di un numero. Se proprio non ci riesci ti basta fare una ricerca, ma ti consiglio di provare a farlo da solo perché è facile e avere il codice pronto non ti serve a molto.
    every day above ground is a good one

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: C++ Creare Fattoriale

    Originariamente inviato da Q.Pagliuca
    purtroppo non ho idee di come impostarlo!
    Beh ... mi sembra impossibile non avere idee, se sai come si calcola "con carta e penna" un fattoriale !
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4

    Re: Re: C++ Creare Fattoriale

    Originariamente inviato da oregon
    Beh ... mi sembra impossibile non avere idee, se sai come si calcola "con carta e penna" un fattoriale !
    allora il fattoriale si calcola n*(n-1)*(n-2) ecc peròmica posso mettermi a scrivere la formula all'infinito -.-' ..è qst il problema ..perchè avevo pensato di fare il caso base cioè " if (n = 0 || n=1) fattoriale = 1" e così poi riportare il fattoriale di ogni numero al caso base ..però così nn funziona perchè dovrei creare la funzione fattoriale ...ma che non sono riuscito a creare :s

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quando calcoli il fattoriale di un numero, n è definito, non è più variabile.

    Quindi, se chiedi di calcolare il fattoriale di 5, devi calcolare

    5*4*3*2*1

    Di conseguenza, la prima cosa da fare è chiedere il numero di cui si vuole conoscere il fattoriale, e la seconda, un ciclo da 1 al numero indicato ... all'interno del ciclo fai le moltiplicazioni.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    stavo leggendo una articolo su Template metaprogramming ed ho trovato del codice che potrebbe fare al caso tuo:

    codice:
    int factorial(int n) 
    {
        if (n == 0)
           return 1;
        return n * factorial(n - 1);
    }
     
    void foo()
    {
        int x = factorial(4); // == (4 * 3 * 2 * 1 * 1) == 24
        int y = factorial(0); // == 0! == 1
    }
    http://en.wikipedia.org/wiki/Template_metaprogramming
    Alla batteria dai retta ballA

  7. #7
    [OT]Avevo letto un articolo di Bjarne Stroustrup in cui ammetteva di essere rimasto lui stesso a bocca aperta quando aveva visto una funzione di calcolo del fattoriale risolta tutta a compile-time grazie ai template.[/OT]
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153
    Originariamente inviato da MItaly
    [OT]Avevo letto un articolo di Bjarne Stroustrup in cui ammetteva di essere rimasto lui stesso a bocca aperta quando aveva visto una funzione di calcolo del fattoriale risolta tutta a compile-time grazie ai template.[/OT]
    saresti cosi gentile da dirmi come hanno fatto?


    comunque entrato IT il fattoriale o lo calcoli con le funzioni ricorsive oppure usi un ciclo for niente di più falcie:
    codice:
    int fat(int n){
      temp=0;
      for(int i=n,i>0,i--)
        temp=temp*i;
    
      return temp;
    
    }
    penso sia giusta però non l'ho controllata la funzione...e comunque c'è sempre quella ricorsiva...
    cogli l'attimo

  9. #9
    Originariamente inviato da c_junior
    saresti cosi gentile da dirmi come hanno fatto?


    comunque entrato IT il fattoriale o lo calcoli con le funzioni ricorsive oppure usi un ciclo for niente di più falcie:
    codice:
    int fat(int n){
      temp=0;
      for(int i=n,i>0,i--)
        temp=temp*i;
    
      return temp;
    
    }
    penso sia giusta però non l'ho controllata la funzione...e comunque c'è sempre quella ricorsiva...

    già è proprio quella ricorsiva a cui avevo pensato ma mi manca qlks per completare il ragionamento e scrivere il programma ..c'è qlks che mi sfugge :S

  10. #10
    Originariamente inviato da c_junior
    saresti cosi gentile da dirmi come hanno fatto?
    Guarda il link postato poco fa.

    comunque entrato IT il fattoriale o lo calcoli con le funzioni ricorsive oppure usi un ciclo for niente di più falcie:
    Senza contare che la soluzione iterativa è molto più efficiente.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.