奶牛的骰子

【题目描述】

贝茜喜欢玩棋盘游戏和角色扮演游戏,所以她说服了约翰开车带她去小商店,在那里她买了三个般子.这三个不同的般子分别有Si, S2. S3个面。

贝茜扔一个有S个面的般子,每个面上的数字是1,2,3,…S。每个面出现的概率均等,她希望找出在所有三个面上的数字的和中,哪个出现的概率最大。

现在给出每个般子的面数,需要求出哪个所有三个面上的数字的和出现得最频繁。如果有很多个和出现的概率相同,那么只需要输出最小的那个。

【输入格式】

三个用空格分开的整数Si, S2, S3(2<=s1,s2<=20,2<=s3<=40)。

【输出格式】

当骰子们被扔出各种可能的组合时,出现频率最高的,数值最小的那个和。

【分析】

直接模拟,暴力算出所有的和,在开个桶,直接算就可以了。

【代码】

 1 #include<bits/stdc++.h>
 2  
 3 using namespace std;
 4  
 5 int s1,s2,s3,ans,num;
 6 int a[110];
 7  
 8 int main()
 9 {
10     memset(a,0,sizeof(a));
11     scanf("%d%d%d",&s1,&s2,&s3);
12     for(int i=1;i<=s1;i++){
13         for(int j=1;j<=s2;j++){
14             for(int k=1;k<=s3;k++){
15                 a[i+j+k]++;
16             }
17         }
18     }
19     num=0;
20     for(int i=1;i<=s1+s2+s3;i++){
21         if(a[i]>num) num=a[i],ans=i;
22     }
23     printf("%d\n",ans);
24     return 0;
25 }

猜你喜欢

转载自www.cnblogs.com/Dawn-Star/p/9139279.html