骰子(tóu zi),又称色子(shǎi zi),是中国传统民间娱乐用来投掷的博具,早在战国时期就有,通常作为桌上游戏的小道具,最常见的骰子是六面骰,它是一颗正立方体,上面分别有一到六个孔(或数字),其相对两面之数字和必为七。中国的骰子习惯在一点和四点漆上红色。骰子是容易制作和取得的乱数产生器。
现有一种三个骰子比大小的玩法,请你写一段程序来判断两个人的胜负。
基本规则:一共三颗骰子,AB两人各摇一次,谁大谁赢。相同则打平。
大小的规则如下:
1、如果三个骰子的点数完全一样,比如3个1,一定比三个骰子不完全一样的大;如果同样都是三个骰子的点数完全一样,则点数大的获胜。比如3个2胜过3个1;
2、三个骰子不完全一样的点数比较规则为,当总点数(三个骰子的点数之和)小于等于10时,点数小的胜过点数大的;当总点数大于等于11时,点数大的胜过点数小的;当小于等于10的点数与大于等于11的点数比较时,4点等于17点、5点等于16点、6点等于15点、7点等于14点、8点等于13点、9点等于12点、10点等于11点(这种规则的本质是出现概率小的大于出现概率大的);
输入格式:
只有一行,为6个用空格分隔的整数。前三个代表A摇出的点数,后三个代表B摇出的点数。测试用例保证合法。
输出格式:
如果A获胜则输出A,B获胜则输出B,打平则输出=。
输入样例一:
1 1 1 4 5 6
输出样例一:
A
输入样例二:
1 1 1 2 2 2
输出样例二:
B
输入样例三:
3 4 2 5 6 1
输出样例三:
=
思路:
先讨论一方都相同的情况,再讨论一方不同的情况
不全相同时:这种规则的本质是比较出现的概率大小,所以如果sum a>=11时,可以让其转换为suma=21-suma,都转化为小于11的数,谁小谁就胜出。(避免多次分情况讨论)
代码实现
#include<stdio.h>
int main()
{
int a1,a2,a3,suma;
int b1,b2,b3,sumb;
scanf("%d %d %d %d %d %d",&a1,&a2,&a3,&b1,&b2,&b3);
suma=a1+a2+a3;
sumb=b1+b2+b3;
//一方都相同
if(a1==a2&&a2==a3)
{
if(b1==b2&&b2==b3)
{
if(a1==b1)
{
printf("=\n");
}
if(a1>b1)
{
printf("A\n");
}
if(b1>a1)
{
printf("B\n");
}
}
else printf("A\n");
}
//一方不全相同
else
{
if(b1==b2&&b2==b3)
{
printf("B\n");
}
else//转换
{
if(suma>=11)
{
suma=21-suma;
}
if(sumb>=11)
{
sumb=21-sumb;
}
if(suma<sumb)
{
printf("A\n");
}
if(suma==sumb)
{
printf("=\n");
}
if(sumb<suma)
{
printf("B\n");
}
}
}
return 0;
}