ACM斗牛游戏算法JAVA实现

本文介绍了ACM斗牛游戏的算法,并提供了完整的JAVA实现代码,包括题目描述、输入格式、输出要求,适合ACM竞赛爱好者和JAVA编程学习者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

在中国传统的牌类游戏中蕴含了很多有意思的数学问题,斗牛就是一种有趣的扑克牌游戏,参与斗牛的玩家每回合会得到五张扑克牌,每张牌可能是A、2、3、4、5、6、7、8、9、10 、J、 Q、 K中的任意一张,这些牌分别代表一个数,就是其本身,对于特殊的牌,我们规定A代表1,J、Q、K和10是等价的,玩家拿到五张牌后,可以任意取三张牌,如果三张牌的点数相加为10或者10的倍数(比如20或者30),即说明该玩家有牛。在有牛的前提下,剩下的两张牌相加即为玩家的最终点数,点数总共有牛1、牛2…牛10这样十种情况,点数越大越好(即牛1最小,牛10最大),两张牌的点数相加若超过10,则只取个位数,比如 3和8,则该玩家点数为牛1。如果构成10或者10的倍数,即都视为牛10,比如 5和5、10和10、10和J,这三种情况均为牛10。
为了简化题目输入输出,我们只取1到10这10种数值的牌。此外,为了增加游戏的趣味性,我们增加鬼牌,拿到鬼牌的玩家可以将其作为1-10之间的任意点数的牌,在题目中,用0来表示鬼牌。

输入

输入的第一行包含一个整数 T ( T > 0),表示一共有 T组测试数据。
对于每组测试数据,只有一行,包含五个整数a,b,c,d,e (0<=a,b,c,d,e<=10),数字之间用空格分开。

输出

对于每组测试数据,若玩家没有牛,则输出-1,若玩家有牛,输出一个正整数代表玩家能够凑成的最大点数。

样例输入
5
3 5 1 4 8
4 8 8 3 6
3 7 1 4 1
0 2 5 6 7
0 2 5 3 7


样例输出
1
9
-1
9
10

实现代码:

package ACM;


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class BlueGame {

private int T;
private String temp;
private static int N =10;
List<Integer> result =new ArrayList<Integer>();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值