拼多多 骰子 可能解法

我太菜了。。。一直做不出来,考完了调试好了

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
#include <algorithm>
using namespace std;

int main(void)
{
    int N;
    cin >> N;
    vector<int> data(N+1,0);
    long long sum = 1;
    for (int i = 1; i < N+1; ++i) {
        cin >> data[i];
        sum *= data[i];
    }
    sort(data.begin(), data.end());
    double expret = 1.0;
    //cout << expret << endl; 
    for (int i = 2; i <= data[data.size()-1]; ++i) {
        double iret = 1;
        double inum = 0, isma=1,ilit=0;
        for (int j = 1; j <= N; ++j) {
                if (data[j] >= i) {inum++;}
                else { isma*=data[j]; }
        }
        iret = i*(2 * inum - 1)*isma;
        expret += iret;
    }
    cout <<fixed<< setprecision(2)<<expret / sum << endl;
    system("pause");
    return 0;
}

#拼多多##笔试题目##题解#
全部评论
就差关键的一句,没时间了😂
点赞 回复 分享
发布于 2019-09-01 17:23
import java.util.Arrays; import java.util.Scanner; public class Main_2 {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int[] x = new int[51];         for (int i = 0; i < n; i++) {             int M = scanner.nextInt();             x[M]++;         }         double expection = 0;         double temp2 = 1;         double temp1 = 1;         for (int i = 50; i > 0; i--) {             if (x[i] > 0) {                 temp1 *= Math.pow(i - 1, x[i]) / Math.pow(i, x[i]);                 double pro = temp2 - temp1;                 temp2 = temp1;                 expection += i * pro;                 x[i - 1] += x[i];             }         }         System.out.printf("%.2f", expection);     } }
点赞 回复 分享
发布于 2019-09-01 20:17

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务