public class Main { static double[][] m; public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int num = sc.nextInt(); m = new double[num + 1][num + 1]; for (int i = 0; i < num + 1; i++) m[i] = new double[num + 1]; int[] p = new int[num]; for (int i = 0; i < num; i++) p[i] = sc.nextInt(); System.out.println(ans(p)); } } private static String ans(int[] p) { m[1][0] = (100 - p[0]) / 100.0; m[1][1] = p[0] / 100.0; for (int i = 2; i <= p.length; i++) { double fail = (100 - p[i - 1]) / 100.0; double suc = p[i - 1] / 100.0; m[i][0] = m[i - 1][0] * fail; for (int j = 1; j <= i; j++) { m[i][j] = m[i - 1][j] * fail + m[i - 1][j - 1] * suc; } } double res = 0; int suc = (int) Math.ceil(p.length * 0.6); for (int i = suc; i <= p.length; i++) res += m[p.length][i]; DecimalFormat df = new DecimalFormat("0.00000"); return df.format(res); } }
点赞 评论

相关推荐

04-16 12:49
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务