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位玩家你已经输了"
);
}
}
}
}
相关推荐
一、游戏 游戏A: ...两人轮流按下列规则取走一些石子,游戏的规则如下: 2. 每一步应取走至少一枚石子; 3. 每一步只能从某一堆中取走部分或全部石子; � 如果谁无法按规则取子,谁就是输家。 。。。。。。
Problem D:石子合并(包含源程序c++) Time Limit:1000MS Memory Limit:65536K Description 在一个圆形操场的四周摆放着 n 堆石子. 现要将石子有次序地合并成一堆, 规定每次只能选相邻的 2 堆石子合并成新的一堆, ...
“石子棋”游戏是一种两人对弈的小型棋类游戏。...随着时间的推移,也许这种在地上画好格子,捡几个石子就能玩的原始纯朴的游戏会被慢慢的遗忘,编写这个游戏,说高尚一点也算是为保存中国传统文化做一点贡献吧。
算法设计与分析中的石子合并算法,使用c++编写
在空地上,有n堆石子排成一排,你需要把这些石子合并成一堆石子。你每次只能合并 相邻的两堆石子。而将两堆石子合并的代价是这两堆石子的个数之和。 在开始合并前,你可以有一次机会去交换某相邻的两堆石子。
Problem F:石子合并 Time Limit:1000MS Memory Limit:65536K ...程序运行结束时,输出两行,第1 行中的数是最小得分;第2 行中的数是最大得分。 Sample Input 4 4 4 5 9 Sample Output 43 54
规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 编程任务: 对于给定n堆石子,编程计算合并成一堆的最小...
取石子是经典的算法考试题目,这个PPT是我在百度文库下载的。上传在CSDN是为了备份。下载免任何积分的
/*问题描述:在一个圆形操场的四周摆放着n堆石子,先要将石子有序的合并为一堆。规定每次只能选相邻的石子合并成一堆,并将新一堆的石子数 记录为该次合并的得分。试设计一个算法,记录n堆石子合并的最大和最小得分...
这是博弈算法-取石子的游戏,这是我自己整理的,自己感觉很有用,希望对大家有好处。
算法实现题3-6 石子合并问题 «问题描述: 在一个圆形操场的四周摆放着n 堆石子。...程序运行结束时,将计算结果输出到文件output.txt 中。文件的第1 行中的数是最小得 分;第2 行中的数是最大得分
Description 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并...程序运行结束时,输出两行,第1 行中的数是最小得分;第2 行中的数是最大得分。 Sample Input 4 4 4 5 9 Sample Output 43 54
规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 编程任务: 对于给定n堆石子,编程计算合并成一堆的最小...
石子归并(区间DP入门题)博客的补充程序,没有注释,有需要可自行下,应该是无BUG版,有BUG请提出
博弈论,主要讲述了取石子游戏中所涉及到的三类博弈论问题
需要交作业的,可以考虑下载哦。是关于石子合并问题
编一程序,由文件读入堆栈数N及每堆栈的石子数(<=20)。 (1)选择一种合并石子的方案,使用权得做N-1次合并,得分的总和最小; (2)选择一种合并石子的方案,使用权得做N-1次合并,得分的总和最大。
动态规划 解决石子合并问题 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只 能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出...
11079 可以移动的石子合并 时间限制:1000MS 内存限制:1000K 提交次数:0 通过次数:0 题型: 编程题 语言: 无限制 Description 有n堆石子形成一行(a1,a2,…,an,ai为第i堆石子个数),现要将石子合并成一堆,规定...
根据其重叠子问题建立状态转移方程,利用程序进行求解。算例结果显示:将4堆石子合并成一堆,每堆的石子个数分别是4,4,5,9,合并的代价最小得分为43,最大得分为54。 针对运动员最佳配对问题,本文利用回溯法寻求...