import java.math.BigDecimal; import java.math.MathContext; public class Welcome1 { public static BigDecimal one; public static MathContext mc; public static BigDecimal fac(long i) { return fac(new BigDecimal(i, mc)); } public static BigDecimal fac(BigDecimal i) { if(1 == i.longValue()) { return new BigDecimal(1, mc); } else { return i.multiply(fac(i.subtract(one, mc))); } } public static BigDecimal oneoverfac(long i) { return one.divide(fac(i), mc); } public static BigDecimal sum(int i) { if (1 == i) { return new BigDecimal(1, mc); } else { return oneoverfac(i).add(sum(i-1), mc); } } public static void main(String args[]) { mc = new MathContext(5005); one = new BigDecimal(1, mc); System.out.println(sum(5000)); } }