目录

1 报数游戏

2 不连续处断开

3 猜数字游戏

4 串的反转

5 串中找数字

6 递归连续数

7 复制网站内容

8 股票的风险

9 基因牛的繁殖

10 括号的匹配

 


1 报数游戏

    有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++)
________________;
a.remove(0);
}
System.out.println(a); a.add(a.remove(0))

2 不连续处断开

    下列代码运行结果为:
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);
_____________________________;
}
}
System.out.println(t); t = "" + s.charAt(i)

3 猜数字游戏

猜数字

很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机使用了二分法。
阅读分析代码,填写缺失的部分。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 System.out.println("请在心中想好一个数字(1~100),我来猜");
System.out.println("我每猜一个数字,你要告诉我是“猜大了”,“猜小了”,还是“猜中”");
Scanner scan = new Scanner(System.in);
int v1 = 1;
int v2 = 100;
for(;;)
{
int m = (v1 + v2)/2;
System.out.println("我猜是:" + m);
System.out.println("1.猜得太大了");
System.out.println("2.猜得太小了");
System.out.println("3.猜中!");
System.out.print("请选择:");
int user = Integer.parseInt(scan.nextLine());
if(user==3) break;
if(user==1) _____________;
if(user==2) _____________;
} v2 = m - 1
v1 = m + 1

4 串的反转

反转串

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

5 串中找数字

以下的静态方法实现了:把串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') return _____________; //填空 return ___________________; //填空
} 请分析代码逻辑,并推测划线处的代码。 答案写在 “解答.txt” 文件中 注意:只写划线处应该填的内容,划线前后的内容不要抄写。 return c - '0' getFirstNum(s.substring(1))

6 递归连续数

    以下程序打印出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);
}
} if(begin > end) return

7 复制网站内容

    本程序将网站“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 inString;
File outfile=new File("test.html");
PrintWriter out=new PrintWriter(new FileWriter(outfile));
while ((inString=in.readLine())!=null){
out.println(inString);
}
in.close();
out.close();
}
} new URL("http://www.baidu.com") new BufferedReader(new InputStreamReader(url.openStream()))

8 股票的风险

股票风险

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

9 基因牛的繁殖

基因牛

张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛?
以下程序模拟了这个过程,请填写缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 public static class Cow
{
private int age;
public Cow afterYear()
{
age++;
return age > 2 ? new Cow() : ___________;
} public static void showTotalCowNum(int n)
{
List<Cow> list = new ArrayList<Cow>();
list.add(new Cow()); for (int i = 0; i < n; i++)
{
int cowCount = list.size();
for (int j = 0; j < cowCount; j++)
{
Cow cow = list.get(j).afterYear(); // 填空
if (cow != null)
{
________________;
list.add(cow);
}
}
}
System.out.println(n + "年后,共有:" + list.size());
}
} null
cow.age++

10 括号的匹配

下面的代码用于判断一个串中的括号是否匹配
所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉 例如:
..(..[..]..).. 是允许的
..(...[...)....].... 是禁止的
对于 main 方法中的测试用例,应该输出:
false
true
false
false import java.util.*;
public class A22
{
public static boolean isGoodBracket(String s)
{
Stack<Character> a = new Stack<Character>(); for(int i=0; i<s.length(); i++)
{
char c = s.charAt(i);
if(c=='(') a.push(')');
if(c=='[') a.push(']');
if(c=='{') a.push('}'); if(c==')' || c==']' || c=='}')
{
if(____________________) return false; // 填空
if(a.pop() != c) return false;
}
} if(___________________) return false; // 填空 return true;
} public static void main(String[] args)
{
System.out.println( isGoodBracket("...(..[.)..].{.(..).}..."));
System.out.println( isGoodBracket("...(..[...].(.).){.(..).}..."));
System.out.println( isGoodBracket(".....[...].(.).){.(..).}..."));
System.out.println( isGoodBracket("...(..[...].(.).){.(..)...."));
}
} 请分析代码逻辑,并推测划线处的代码。 答案写在 “解答.txt” 文件中 注意:只写划线处应该填的内容,划线前后的内容不要抄写。

a.empty()
!a.empty()

算法笔记_113:算法集训之代码填空题集一(Java)的更多相关文章

  1. 算法笔记_116:算法集训之代码填空题集三(Java)

     目录 1 数组转置 2 文件管理 3 显示为树形 4 杨辉三角系数 5 圆周率与级数 6 整数翻转 7 自行车行程 8 祖冲之割圆法 9 最大5个数 10 最大镜像子串   1 数组转置 编写程序将 ...

  2. 算法笔记_115:算法集训之代码填空题集二(Java)

     目录 1 连续数的公倍数 2 孪生素数 3 迷宫走法 4 拍7游戏 5 排列为平方数 6 平面点最小距离 7 扑克牌排列 8 三进制转十进制 9 识别复制串 10 蔬菜价格计算   1 连续数的公倍 ...

  3. 算法笔记_117:算法集训之结果填空题集一(Java)

     目录 1 空瓶换汽水 2 三人年龄 3 考察团组成 4 微生物增殖 5 除去次方数 6 正六面体染色 7 古堡算式 8 海盗比酒量 9 奇怪的比赛 10 土地测量   1 空瓶换汽水 浪费可耻,节约 ...

  4. 算法笔记_118:算法集训之结果填空题集二(Java)

     目录 1 欧拉与鸡蛋 2 巧排扑克牌 3 排座位 4 黄金队列 5 汉诺塔计数 6 猜生日 7 棋盘上的麦子 8 国庆星期日 9 找素数 10 填写算式 11 取字母组成串   1 欧拉与鸡蛋 大数 ...

  5. YTU 2607: A代码填空题--更换火车头

    2607: A代码填空题--更换火车头 时间限制: 1 Sec  内存限制: 128 MB 提交: 91  解决: 73 题目描述 注:本题只需要提交填写部分的代码,请按照C++方式提交. 假设火车有 ...

  6. java算法集训代码填空题练习3

    1 数组转置 编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置).已经写了如下代码,请完善之: class y{ public static void main(String[] a ...

  7. 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)

    Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...

  8. 算法笔记_119:蓝桥杯第六届省赛(Java语言A组)试题解答

     目录 1 熊怪吃核桃 2 星系炸弹 3 九数分三组 4 循环节长度 5 打印菱形 6 加法变乘法 7 牌型种数 8 移动距离 9 垒骰子 10 灾后重建   前言:以下试题解答代码部分仅供参考,若有 ...

  9. 算法笔记_041:寻找和为定值的多个数(Java)

    目录 1 问题描述 2 解决方案 1 问题描述 输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题 ...

随机推荐

  1. 欧拉图 欧拉回路 欧拉通路 Euler

    欧拉图 本文链接:http://www.cnblogs.com/Ash-ly/p/5397702.html 定义: 欧拉回路:图G的一个回路,如果恰通过图G的每一条边,则该回路称为欧拉回路,具有欧拉回 ...

  2. Python3 文件操作基本语法

    对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 f = open('lyrics') #打开文件 first_line = f.readline() prin ...

  3. python脚本实现ipv6的ddns功能

    话说在国家的推动下,ipv6地址已经开始优先在三大运营商推广,我自己家用的就是联通宽带100M光纤入户.有一次,不经意间发现,我们的光猫竟然获取到了ipv6地址,于是我开始浮想联翩. 说干就干,我先是 ...

  4. linux——(1)初识linux

    linux有窗口管理员环境和纯文本界面环境,同时linux默认提供6个Terminal来让用户登录.crtl+alt+F1-6可自由切换.其中如果窗口管理员环境处于运行状态,那么可以按crtl+alt ...

  5. [BZOJ 1562] 变换序列

    Link: BZOJ 1562 传送门 Solution: 一道比较考对$Hungry$算法理解的题目 首先可以轻松看出原序列和答案序列的对应关系,从而建出二分图匹配模型 下面的关键在于如何保证字典序 ...

  6. BZOJ 1221 [HNOI2001] 软件开发(费用流)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1221 [题目大意] 每天对毛巾都有一定的需求ni,每天可以花f价值每条购买毛巾, 当天 ...

  7. 【找规律】【DFS】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem A. Arithmetic Derivative

    假设一个数有n个质因子a1,a2,..,an,那么n'=Σ(a1*a2*...*an)/ai. 打个表出来,发现一个数x,如果x'=Kx,那么x一定由K个“基础因子”组成. 这些基础因子是2^2,3^ ...

  8. cookie实现记住密码功能

    之前在一次面试过程中,被问到前后端如何实现记住密码功能,所以自己也试着做,这是纯js做的. 一.实现思路 1.前端页面,自己简单写了一个页面,如下图,不喜勿喷 2.主要有三个函数 setCookie( ...

  9. 8VC Venture Cup 2016 - Elimination Round E. Simple Skewness 暴力+二分

    E. Simple Skewness 题目连接: http://www.codeforces.com/contest/626/problem/E Description Define the simp ...

  10. 修改ORACLE实例名

    修改数据库的SID  举例说明,我的数据库的SID叫testdb,现在要改成oral.更改ORACLE数据库的sid,涉及到的用东西比较多,但是大概来说就以下六步. 1.停止所有的Oracle服务.  ...