Originariamente inviato da ::silver73::
Ma se io volessi dare all'utente la possibilità di inserire un numero a piacere di cui calcolare il fattoriale?
Se l'input è fatto dallo standard-input, puoi usare la classe Scanner (passando al costruttore System.in) ed usare il metodo nextBigInteger() per leggere un BigInteger.

Ma in generale, se hai una stringa puoi sempre creare un BigInteger partendo da quella.