package
com.hpu.bai;
import
java.util.Scanner;
public
class
Cobble {
public
static
void
main(String[] args) {
Cobble c =
new
Cobble();
c.print();
c.getCobble();
}
int
[] arr ={
3
,
5
,
7
};
int
n =
15
;
int
count =
0
;
Scanner input =
new
Scanner(System.in);
public
int
total(){
int
m =
0
;
for
(
int
i=
0
;i<arr.length;i++){
m+=arr[i];
}
return
m;
}
public
void
print(){
for
(
int
i=
0
;i<arr.length;i++){
System.out.println(
"第"
+(i+
1
)+
"堆还剩下"
+arr[i]+
"个石子##"
);
}
}
public
void
player(
int
b){
if
(b%
2
==
1
){
System.out.println(
"该第一个人拿石子了"
);
}
else
{
System.out.println(
"该第二个人拿石子了"
);
}
}
public
void
getCobble(){
count++;
if
(n>
1
){
player(count);
System.out.println(
"请输入你要在哪一堆石子中取石子"
);
int
i = input.nextInt()-
1
;
System.out.println(
"请输入你要在这堆石子中取几个"
);
int
m = input.nextInt();
if
(m>
3
){
System.out.println(
"你的输入有误,请重新输入"
);
count--;
getCobble();
}
else
{
arr[i]=arr[i]-m;
if
(arr[i]<
0
){
System.out.println(
"石子快没了,要么你少拿点,要么你换一堆吧"
);
arr[i]= arr[i]+m;
count--;
}
print();
n = total();
getCobble();
}
}
else
{
if
(count%
2
==
1
){
System.out.println(
"别拿了,第1位玩家你已经输了"
);
}
else
{
System.out.println(
"别拿了,第2位玩家你已经输了"
);
}
}
}
}
相关推荐
### 知识点解析 #### 一、问题背景与描述 **题目名称:**石子合并 **时间限制:**1000MS **内存限制:**65536K **问题描述:** 在一个圆形操场的四周摆放着 \(n\) 堆石子。目标是将这些石子按照一定的顺序合并...
6. **取子游戏.cpp**:这是一类典型的博弈论问题,比如Nim游戏或石子游戏。解决这类问题通常需要分析游戏状态并构建决策树,使用动态规划或最小最大搜索算法。 7. **古堡算式.cpp**:题目可能涉及数学逻辑或数学...
在计算机科学领域,特别是在算法竞赛如ACM(国际大学生程序设计竞赛)中,理解并掌握组合游戏的策略至关重要。"组合游戏.rar"这个压缩包文件包含了关于这类游戏的深入探讨,包括sg函数和博弈论的应用。本文将详细...
3. **用户交互**:设计命令行接口,让玩家输入他们想要移动的小坑编号,程序解析输入并执行相应的移动。 4. **状态记录**:考虑到游戏可能需要回溯(例如,当玩家选择了一个无效的移动),可以使用栈或递归来保存...
总结起来,这些C++程序利用动态规划解决了各种优化问题,包括游戏策略、序列操作、矩阵处理、路径规划和资源分配等。动态规划的核心在于将复杂问题分解为更简单的子问题,通过状态转移方程或表格存储子问题的解,...
【阿里2013研发工程师笔试题解析】 1. 12345*12345=1105266261 的计算是基于十进制的,因为乘法结果符合十进制计算规则,不是2、8、16进制的特征。 2. HTTP协议是一种请求-响应协议,用于Web(WWW)和电子邮件,但...
#### 取石子游戏 **问题描述:** - 有一堆石子,两个人轮流取石子。先取的人第一次可以取任意多个石子,但不能全部取完。之后每次取石子的数量不能超过上次取石子数量的两倍。谁取到最后一个石子谁获胜。 **解决...
8. **案例分析**:在“ACM动态规划经典题”中,可能会包括诸如“鸡蛋掉落”、“石子游戏”、“最长递增子序列”等经典题目,通过解析这些实例,可以深入理解动态规划的思路和应用。 9. **编程实现**:掌握动态规划...
- 编程竞赛问题:如剪绳子、石子游戏、矩阵链乘法等。 3. **主要类型**: - 状态压缩:当状态数量很大但状态之间有某种编码关系时,可以使用位运算进行状态压缩,减少空间需求。 - 阶段DP:将问题分为多个阶段,...
骆 骥 -《浅析解 "对策问题" 的两种思路——从《取石子》问题谈起》 孙方成 -《偶图的算法及应用》 孙林春 -《让我们做得更好——从《Parity》的解法谈程序的优化》 王知昆 -《搜索顺序的选择》 许智磊 -《二分...
Nim游戏的变体,要求玩家理解游戏理论中的必败态和胜利策略。 以上解题报告覆盖了从基础数据结构与算法到高级算法设计的广泛内容,旨在培养学生的逻辑思维能力和编程技巧,同时提供了一个系统的学习路线图,帮助...