京东2017实习生招聘在线笔试编程题

来源:互联网 发布:卧龙ol装备强化数据 编辑:程序博客网 时间:2024/05/16 00:59

很惭愧不是自己做出来的,不过知道思路了就很简单

这里写图片描述

#include <iostream>using namespace std;void initarr(double **&arr, int n){    arr = new double*[n];    for (int i = 0; i<n; i++)        arr[i] = new double[n];    for (int i = 0; i < n; i++)        memset(arr[i], 0, n * sizeof(double));}int test2(){    int n;    cin >> n;    int *p = new int[n];    for (int i = 0; i<n; i++)        cin >> p[i];    int low = (3 * n + 4) / 5;//至少要做对的题目    //前i题对j个的概率    ★有这句话就能写出动态规划    double **res;    initarr(res, n + 1);    res[0][0] = 1;    for (int i = 1; i <= n; i++)    {        res[i][0] = res[i - 1][0] * (100 - p[i - 1]) / 100;        for (int j = 1; j <= i; j++)            res[i][j] = res[i - 1][j - 1] * p[i - 1] / 100 + res[i - 1][j] * (100 - p[i - 1]) / 100;    }    double sum = 0;    for (int i = low; i <= n; i++)        sum += res[n][i];    printf("%.5f", sum);    return 0;}/*450 50 50 50*/

思路图

这里写图片描述

0 0
原创粉丝点击