题意:
三个不同的骰子,分别有S1,S2,S3个面。求出出现几率最大的和是多少。如果有很多种和出现的几率相同,那么就输出小的那一个。2≤S1≤20,2≤S2≤20,2≤S3≤40。
题解:
枚举。
代码:
1 #include <cstdio> 2 #define inc(i,j,k) for(int i=j;i<=k;i++) 3 using namespace std; 4 5 int a,b,c,cnt[100],mx1,mx2; 6 int main(){ 7 scanf("%d%d%d",&a,&b,&c); inc(i,1,a)inc(j,1,b)inc(k,1,c)cnt[i+j+k]++; 8 mx1=0; inc(i,1,a+b+c)if(cnt[i]>mx1)mx1=cnt[i],mx2=i; printf("%d",mx2); return 0; 9 }
20160917