7-2 三个骰子比大小

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

输出样例三:

=

思路:

  1. 先讨论一方都相同的情况,再讨论一方不同的情况

  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;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值