三个骰子比大小

题目:

骰子(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正确

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值