import java.math.BigInteger;
public class CFactorial {
public static void main( String[] args ) {
System.out.println( Factorial( BigInteger.valueOf( 100 ) ).toString() );
}
private static BigInteger Factorial( BigInteger N ) {
if( N.equals( BigInteger.ONE ) ) return BigInteger.ONE; else return N.multiply( Factorial( N.subtract( BigInteger.ONE ) ) );
}
}
Вот, кстати, вам еще задача:
Даны два дробных числа, представленные 8-байтовым значением типа long следующим образом: старшие 4 байта - это целая часть, младшие - дробная. Т. е. это число "поделено" на 0x100000000. Реализовать сложение и вычитание просто, но попробуйте реализовать умножение, деление и вывод на экран не прибегая к другим типам данных.