- 浏览: 41806 次
- 性别:
最新评论
文章列表
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。
我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。
轮到某一方取球时不能弃权!
A先取球,然后双方交替取球,直到取完。
被迫拿到最后一个球的一方为负方(输方)
请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?
程序运行时,从标准输入获得数据,其格式如下:
先是一个整数n(n<100),表示接下来有n ...
2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如图【1.jpg】所示。
和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:
A B D E C
A B CD E
为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:
AB*DECABCD*E
题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0。初始状态为:ABCDE* 用户输入的格式是:先是一个整 ...
匪警请拨110,即使手机欠费也可拨通!
为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!
某批警察叔叔正在进行智力训练:
1 2 3 4 5 6 ...
泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。
有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。
有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。要求你只用3个容器操作,最后使得某个容器中正好有6升油。
下面的列表是可能的操作状态记录:12,0,04,8,04,3,59,3,09,0,31,8,31,6,5
每行3个数据,分别表示12 ...
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜 ...
关于位运算的一些算法
- 博客分类:
- java理论
简单使用左移位运算<<和右移位运算>>
x << 1 即 x*2x << n 即 x乘以(2的n次方)
x>>1 即x/2x>>n 即 x除以(2的n次方)
==========================
运用&判断奇偶数
位元运算效率较佳
(x & 1) 若為1表示奇數,為0表示偶數
&表示上下同位數之位元皆為1時才為1,否則為0,
因此在x看成2進位時,奇數的個位數必為1,再以&1計算仍為1,即可判斷其為奇數,
反之,則為偶數
===== ...
计算24点-利用二叉树原理
- 博客分类:
- java算法
问题描述80年代全世界流行一种数字游戏,在中国我们把这种游戏称为“24点”。现在我们把这个有趣的游戏推广一下:您作为游戏者将得到4个不同的自然数作为操作数,而您的任务是对这4个操作数进行适当的算术运算,您可以使用的运算只有:+,-,*,/,
您还可以使用()来改变运算顺序。注意:所有的中间结果必须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的)下面我们给出一个游戏的具体例子:
3,4,5,7
计算:Step 1: 3.0*4.0=12.0Step 2: 5.0+7.0=12.0Step 3: 12.0+12.0=24.0
请写出代码实现
...
JAVA中的抽象类与接口的区别
- 博客分类:
- java理论
1、Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如 果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个 新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。
2、一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继 ...
如何通过数据包输送对象 -java
- 博客分类:
- java理论
Java 1.1 吸引人的特性之一就是新增了 ObjectInputStream 和 ObjectOutputStream 这两个类。有了这个API(ObjectOutputStream 类中的 writeObject(Object o) 方法和 ObjectInputStream 类中的 object readObject()),您就可以随时获取运行对象的快照,而不管它的对象图有多复杂。因为这种快照是通过 ObjectOutputStream 类(OutputStream 类的子类)提供的,所以您很容易将它包装在其他输出流中,从而实现所需的任何功能(如 FileOutputStream)。 ...
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = newFile("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可用,并且从现实应用来讲,最终生成的应用也会部署到Windows外的操作系统中,对于linux来说,在应用中用了c:/这样的字样,就是失败,所以,我们应该尽量避免使用硬编码,即直接使用绝对路径。 在Servlet应用中,有一个ge ...
题目:
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不被允许的,例如,下列数字都是“吸血 ...
Problem蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 Input本题有多组数据,每组数据由一个正整数N组成。(N不大于100) Output对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。 矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 Sample Input5Sample Output1 3 6 10 152 5 9 144 8 137 1211
代码如下:
import java.util.Scanner;
public class Sank{
public static void main(String[] ar ...
字符串的排列(A(m,n)),可重复选
- 博客分类:
- java算法
题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式?
比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组合有 5+4+3+2+1=15种 (BA 和 AB 这种重复的排列 算成一种)
AA AB AC AD AE
BB BC BD BE
题目:给定一个起点和一个终点。在一个8*8的棋盘上找出一条最短的路径。
import java.util.ArrayList;
//主要是采用广度优先的算法。
/**
* 广度度优先搜索
宽度优先搜索并不是一种很优秀的算法,只里只是简单介绍一下它。
具体方法是:
1、 从A点开始依次展开得到AB、AC、AD、AE四个新结点(第二层结点),当然每个新结点要记录下其距离;
2、 再次以AB展开得到ABC、ABD、ABE三个新结点(第三层结点),而由AC结点可展开得到ACB、ACD、ACE三个新结点,自然AD可以展开得到ADB、 ...
字符串的排列(A(m,n))
- 博客分类:
- java算法
题目:有A,B,C,D,E 5个字母,从其中任选3个,要求列出所有可能的排列
我的想法是,先用组合的算法把所有的组合算出来,然后对每个组合进行全排列。
代码如下:
import java.util.Scanner;
/*
* 主要的思想是在组合的基础上进行全排列
*/
public class Pailie {
private static String str = "ABCDEF";// 字符串
private static int n = 3;// 选择的个数
public static void main(String[ ...