题目:
骰子(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,打平则输出=。
考点:
我的思路:枚举出每一种情况
#include<stdio.h>
int main()
{
int a1, a2, a3, b1, b2, b3, a, b;
scanf("%d %d %d %d %d %d", &a1, &a2, &a3, &b1, &b2, &b3);
a = a1 + a2 + a3;
b = b1 + b2 + b3;
if (a1 == a2 && a2 == a3 && (b1 != b2 || b1 != b3 || b2 != b3)
|| a1 == a2 && a2 == a3 && b1 == b2 && b2 == b3 && a1 > b1
|| a <= 10 && b <= 10 && a < b
|| a>10 && b > 10 && a > b
|| a <= 10 && b > 10 && 11 + (10 - a) > b//写成21-a更好呀,记得化简
|| a > 10 && b <= 10 && 11 + (10 - b) < a)
printf("A");
else if (b1 == b2 && b2 == b3 && (a1 != a2 || a1 != a3 || a2 != a3)
|| b1 == b2 && b2 == b3 && a1 == a2 && a2 == a3 && a1 < b1
|| b <= 10 && a <= 10 && b < a
|| b>10 && a>10 && b > a
|| b <= 10 && a > 10 && 11 + (10 - b) > a
|| b > 10 && a <= 10 && 11 + (10 - a) < b)
printf("B");
else if (a1 == a2 && a2 == a3 && a1 == b1 && b1 == b2 && b2 == b3
|| a <= 10 && b <= 10 && a == b
|| a > 10 && b > 10 && a == b
|| a <= 10 && b > 10 && 11 + (10 - a) == b
|| a > 10 && b <= 10 && 11 + (10 - b) == a)
printf("=");
return 0;
}
tips:1.连等a==b==c错误 a==b&&b==c正确