algoritmi

  • Doppio fattoriale

    Il doppio fattoriale è definito come:

    \[ n!!= \left\{ \begin{matrix}1,\qquad\quad\ \mbox{se }n=0\mbox{ o }n=1; \\ n[(n-2)!!]\mbox{se }n\ge2.\qquad\qquad \end{matrix} \right. \]

    Per esempio

    \[8!!=8*6*4*2=384 \]

    Un algoritmo come questo può essere implementato molto facilmente in maniera ricorsiva, dove il metodo chiama più volte se stesso, infatti questa è l'implementazione che ne ho fatto:

    public static long doubleFact(long n){
    if(n>=52)return 0;
    if(n<=0)
    return 1;
    else
    return doubleFact(n-2)*n;

    }