Forum >> Principianti >> Calcolo Fattoriale

Pagina: 1

Buongiorno a tutti,
è il mio primo intervento in questo forum.... quindi spero sia la sezione giusta...

Sto studiando python con un insegnante, e anche se la domanda può essere stupida, avrei bisogno del vostro aiuto per capire una cosa.

Il calcolo del fattoriale lo posso fare con una funzione abbastanza facile

def fattoriale(x):
    if x == 0:
       return 1
    else:
       return x * fattoriale(x-1)

Il mi oquesito è: esiste un modo per calcolarlo utilizzando il ciclo for in range(x,0,-1) ?

Grazie mille a tutti

Mauro
Ciao Mauro,

la risposta al tuo quesito è: sì.

come lo realizzeresti?

ciao,
riccardo

E' qui che casca l'asino... ( cioè io)

n=5
def fattoriale(n):
  for i in range(n, 0, -1):
    x = n
    y = x * (n-1)
  return y
il problema è che data n a 5 il suo fattoriale dovrebbe esser 120
a me così da 20
quindi invece di fare 5*4*3*2*1
mi fa 1*2*3*4

e non capisco dove sbaglio
ok, mi sembra che sei sulla strada giusta, ma ci sono in effetti alcune cose che non vanno..

ad esempio iteri sui valori 5, 4, 3, 2, 1 assunti da 'i', ma questa variabile non è utilizzata nel corpo del ciclo for. Ad ogni iterazione 'x' e 'y' sono assegnati con gli stessi valori dipendenti da 'n' (che non cambia nel corso del ciclo.

1*2*3*4 farebbe 24, ma 5*(5-1) fa 20.
eccolo:!!!!!!!

def fattorial(n):
    for i in range((n-1), 0, -1):        
       n = n * i 
    return n
print fattorial(n)

Ottengo 120,
Grazie mille.... non capivo il ruolo di "i"

Grazie ancora... ma mi sa che non vi libererete presto di me....



:-D


Pagina: 1



Esegui il login per scrivere una risposta.