>>863さま

    a = n;
    while(n > 1) {
        a *= --n; 
    } 

でうまくいきました。