题目链接:掷骰子
解题思路:将所有相加的结果枚举,出现的次数保存到一个数组中,然后输出相加结果出现次数最多的即可。
#include<iostream>
using namespace std;
int sum[101] = {0}; //相加的结果最大不会超过 20+20+40 101足够大
int main(){
int s1,s2,s3;
int max = 0;
int k = 0; //用k存储出现最多的点数之和
cin>>s1>>s2>>s3;
for(int i=1;i<=s1;i++){
for(int j=1;j<=s2;j++){
for(int n=1;n<=s3;n++){
sum[(i+j+n)]++; //将所有相加的结果枚举,出现的次数保存到数组中
}
}
}
//寻找出现次数最多的点数之和
for(int i=0;i<81;i++){
//cout<<sum[i]<<" ";
if(sum[i]>max){
max = sum[i];
k = i;
}
}
cout<<k;
return 0;
}