題目鏈接:擲骰子
解題思路:將所有相加的結果枚舉,出現的次數保存到一個數組中,然後輸出相加結果出現次數最多的即可。
#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;
}