2013年5月3日

HDOJ 1465 不容易系列之一

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=14651、当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装2、前者,对于每一种错装,可以从N-1封信中任意取一封和第 N封错装,故=F(N-1) * (N-1)3、后者简单,只能是没装错的那封信和第N封信交换信封,没装错的那封信可以是前面N-1封信中的任意一个,故= F(N-2) * (N-1)基本形式:f[1]=0; f[2]=1递归式:f[n]= (n-1)*( f[n-1] + f[n-2]) 排错公式(以上分析来自刘春燕老师的课件,)#include<stdio.h>#inc 阅读全文

posted @ 2013-05-03 16:06 wsxjbcy 阅读(119) 评论(0) 推荐(0) 编辑

HDOJ 2050 折线分割平面

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2050n = 1 , f(n) =2,n = 2 , f(n) =7,把折线可以看成两条射线和这这两条射线的交点,1.在有n-1条直线的时候,有f(n-1)个区域,有(n-1)*2条射线,2,现在来了第n条折线,它是由两条射线和这这两条射线的交点所组成的,3,a,每一条射线都会和前面(n-1)*2条射线相交,并且产生(n-1)*2个新的区域(也就是说,,每一个交点都会产生一个新的区域),一条折线就会带来(n-1)*2*个新区域, b,每一个交点也会带来一个新的区域,#include <iostrea.. 阅读全文

posted @ 2013-05-03 16:00 wsxjbcy 阅读(168) 评论(0) 推荐(0) 编辑

HDOJ 2013 蟠桃记

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2013可以把题目反过来看,猴子第一天有一个桃子,以后每天的桃子数是前一天的的个数加1再乘以2,n = 2, f(n) = 4;猴子每天吃桃子总数的一半多一个,那么,f(n) = (f(n-1) +1) * 2,下面有两种风格的代码,第一种是来一个n,计算一次f(n),#include<iostream>using namespace std;int main(){ int n; while(cin>>n){ int a = 4; for(int i=2;i<... 阅读全文

posted @ 2013-05-03 15:37 wsxjbcy 阅读(167) 评论(0) 推荐(0) 编辑

最小距离

摘要: /* 题目:最小距离 内容: 最近距离 已知平面上的若干点的位置,存入一个List中。现在需要计算所有这些点中, 距离最近的两个点间的最小距离。请补全缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 class MyPoint { private double x; // 横坐标 private double y; // 纵坐标 public MyPoint(double x, double y) { this.x = x; this.y = y; } public static double dis... 阅读全文

posted @ 2013-05-03 15:08 wsxjbcy 阅读(234) 评论(0) 推荐(0) 编辑

排列平方数

摘要: /* 题目:排列平方数 内容: 若干不同的数字,排列组合后能产生多少个平方数? 下面的代码解决了这个问题。 对于:1,6,9 排列后,可产生3个平方数: 169 196 961 请阅读下面的代码,填写缺失的部分(下划线部分)。 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应 题号的“解答.txt”中即可。 直接写在题面中不能得分。 public class My { public static void f(int[] a, int n) { if(n==a.length-1) { int k = 0; for(int i=0; i<a.len... 阅读全文

posted @ 2013-05-03 15:05 wsxjbcy 阅读(182) 评论(0) 推荐(0) 编辑

拍7游戏

摘要: /* 题目:拍7游戏 内容: 许多人都曾经玩过“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17等都不能数出),下一人继续数下面的数字。违反规则者受罚。下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。 for(int i=1; i<100; i++) { if(i % 7 == 0) printf("*\n"); else if(___________________) printf("*\n"); else printf("%d\n", i); } 阅读全文

posted @ 2013-05-03 15:02 wsxjbcy 阅读(1013) 评论(0) 推荐(0) 编辑

迷宫问题

摘要: /* 个人觉得这个题目给的提示太少,在短时间内很难看懂所有代码的思路, 但是仅仅看局部代码的话,填空题,,,,还是可以猜一猜的,,,*//* 题目:迷宫问题 内容: 迷宫问题 对于走迷宫,人们提出过很多计算机上的解法。深度优先搜索、广度优先搜索是使用最广的方法。 生活中,人们更愿意使用“紧贴墙壁,靠右行走”的简单规则。 下面的代码则采用了另一种不同的解法。它把走迷宫的过程比做“染色过程”。 假设入口点被染为红色,它的颜色会“传染”给与它相邻的可走的单元。这个过程不断进行下去, 如果最终出口点被染色,则迷宫有解。 仔细分析代码中的逻辑,填充缺少的部分。 把填空的答案(仅填空处的答案,不包括题面. 阅读全文

posted @ 2013-05-03 14:58 wsxjbcy 阅读(207) 评论(0) 推荐(0) 编辑

孪生素数

摘要: /* 题目:孪生素数 内容: 孪生素数 所谓孪生素数指的就是间隔为 2 的相邻素数,它们之间的距离已经近得不能再近了, 就象孪生兄弟一样。最小的孪生素数是 (3, 5),在 100 以内的孪生素数还有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和 (71, 73),总计有 8 组。 但是随着数字的增大,孪生素数的分布变得越来越稀疏,寻找孪生素数也变得越来越困难。 那么会不会在超过某个界限之后就再也不存在孪生素数了呢? 孪生素数有无穷多对!这个猜想被称为孪生素数猜想,至今没有被严格证明。 但借助于计算机我们确实可以找到任.. 阅读全文

posted @ 2013-05-03 14:56 wsxjbcy 阅读(378) 评论(0) 推荐(0) 编辑

公倍数

摘要: //这个题目比较难,/* 题目:公倍数 内容: 为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。 但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。 事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。 我们希望寻找到能除尽1至n的的每个数字的最小整数。 不要小看这个数字,它可能十分大,比如n=100, 则该数为: 69720375229712477164533808935312303556800 为此,有必要使用BigInteger来记录这样的大数。 请阅读下面的代码,填写缺失的部分(下划线部分)。 注意:请把填空的答案(仅填空处的答案,不包 阅读全文

posted @ 2013-05-03 14:52 wsxjbcy 阅读(268) 评论(0) 推荐(0) 编辑

括号问题

摘要: /* 题目:括号问题 内容: 下面的代码用于判断一个串中的括号是否匹配 所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉 例如: ..(..[..]..).. 是允许的 ..(...[...)....].... 是禁止的 对于 main 方法中的测试用例,应该输出: false true false false import java.util.*; public class A22 { public static boolean isGoodBracket(String s) { Stack<Character> a = new Stack<Characte 阅读全文

posted @ 2013-05-03 13:18 wsxjbcy 阅读(169) 评论(0) 推荐(0) 编辑

基因牛

摘要: /* 标题:基因牛 内容: 基因牛 张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛? 以下程序模拟了这个过程,请填写缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 public static class Cow { private int age; public Cow afterYear() { age++; return age > 2 ? new Cow() : ___________; }... 阅读全文

posted @ 2013-05-03 10:20 wsxjbcy 阅读(293) 评论(0) 推荐(0) 编辑

股票的风险

摘要: /* 标题:股票的风险 内容: 股票风险 股票交易上的投机行为往往十分危险。假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。 假设上涨和下跌的概率均等(都是50%)。再假设交易过程没有任何手续费。 某人在开始的时候持有总价值为x的该股股票,那么100个交易日后,他盈利的可能性是多少呢? 以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 int N = 10000; int n = 0; for(int i=0; i<N; i++) {... 阅读全文

posted @ 2013-05-03 10:16 wsxjbcy 阅读(241) 评论(0) 推荐(0) 编辑

复制网站内容

摘要: /* 标题:复制网站内容 内容: 本程序将网站“www.baidu.com”首页的内容复制保存在文件test.html 中。写了如下代码,请完善之: import java.net.*; import java.io.*; class DaSai{ public static void main(String[] args) throws Exception { URL url=__________________________________; BufferedReader in =_________________________________; String inStr... 阅读全文

posted @ 2013-05-03 10:10 wsxjbcy 阅读(166) 评论(0) 推荐(0) 编辑

递归连续数

摘要: /* 标题:递归连续数 内容: 以下程序打印出0~9的数字,请补充缺少的代码。public class MyTest{ public static void f(int begin, int end) { __________________; System.out.println(begin); f(begin+1, end); } public static void main(String[] args) { f(0,9); }}*/class pro06 { public static void f(int begin, int end) { ... 阅读全文

posted @ 2013-05-03 10:04 wsxjbcy 阅读(119) 评论(0) 推荐(0) 编辑

第一个数字

摘要: /* 标题:第一个数字 内容: 以下的静态方法实现了:把串s中第一个出现的数字的值返回。 如果找不到数字,返回-1 例如: s = "abc24us43" 则返回2 s = "82445adb5" 则返回8 s = "ab" 则返回-1 public static int getFirstNum(String s) { if(s==null || s.length()==0) return -1; char c = s.charAt(0); if(c>='0' && c<='9 阅读全文

posted @ 2013-05-03 09:55 wsxjbcy 阅读(224) 评论(0) 推荐(0) 编辑

反转串

摘要: /* 标题:反转串 内容: 我们把“cba”称为“abc”的反转串。 求一个串的反转串的方法很多。下面就是其中的一种方法,代码十分简洁(甚至有些神秘), 请聪明的你通过给出的一点点线索补充缺少的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件下对应题号的“解答.txt”中即可。 public static String reverseString(String x) { if(x==null || x.length()<2) return x; return ____________________ + x.charAt(0); }*/ 1 class pro04 { 2 阅读全文

posted @ 2013-05-03 09:51 wsxjbcy 阅读(196) 评论(0) 推荐(0) 编辑

猜数字

摘要: /* 标题:猜数字 内容: 猜数字 很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必 须告诉他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其 中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机使用了 二分法。 阅读分析代码,填写缺失的部分。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“ 解答.txt”中即可。 System.out.println("请在心中想好一个数字(1~100),我来猜"); System.out.println("我每猜一个数字,你要告诉我是“猜大了”,“ 猜小了 阅读全文

posted @ 2013-05-03 09:48 wsxjbcy 阅读(204) 评论(0) 推荐(0) 编辑

不连续的处断开

摘要: /* 标题:不连续的处断开 内容: 下列代码运行结果为: 12345 23456 89 23456789 即把一个串从数字不连续的位置断开。试完善之。 String s = "12345234568923456789"; String t = "1"; for(int i=1; i<s.length(); i++) { if(s.charAt(i)==s.charAt(i-1)+1) { t += s.charAt(i); } else { System.out.println(t); __________________... 阅读全文

posted @ 2013-05-03 09:45 wsxjbcy 阅读(153) 评论(0) 推荐(0) 编辑

报数游戏

摘要: /* 标题:报数游戏 内容: 有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数, 直到最后剩下一个孩子为止。问剩下第几个孩子。下面的程序以10个孩子为例,模拟了这个过程, 请完善之(提示:报数的过程被与之逻辑等价的更容易操作的过程所代替)。 Vector a = new Vector(); for(int i=1; i<=10; i++) { a.add("第" + i + "个孩子"); } for(;;) { if(a.size()==1) break; for(int k=0; k<2; k++) 阅读全文

posted @ 2013-05-03 09:40 wsxjbcy 阅读(300) 评论(0) 推荐(0) 编辑

导航