报数游戏 2 style="font-family: 黑体;">不总是处断开 3 style="font-family: 金鼎文;">猜数字娱乐 4 ..." />

算法笔记_113:算法集训之代码填空题集一(Java)mobile.365-838.com

By admin in mobile.365-838.com on 2019年1月12日

这篇随笔的灵感出现在,我一口气读了大冰写的《堂妹》之后。我也经历过,这样一段三姐和兄弟的故事,但一向没能把它记录下来,前几天自己想趁那些机遇,追录自己的这段记念。

 目录

1 style=”font-family: 大篆;”>报数游戏

2 style=”font-family: 黑体;”>不总是处断开

3 style=”font-family: 金鼎文;”>猜数字娱乐

4 style=”font-family: 草书;”>串的反转

5 style=”font-family: 燕书;”>串中找数字

6 style=”font-family: 钟鼓文;”>递归连续数

7 style=”font-family: 钟鼓文;”>复制网站内容

8 style=”font-family: 黑体;”>股票的高风险

9 style=”font-family: 楷书;”>基因牛的繁衍

10 style=”font-family: 楷书;”>括号的匹配

1、

 

 


一分头就是两三年,我们早就是同事,更是朋友。有那么两年岁月,大家连年肩并肩地冒出在同事们面前,所有的首长同事,都觉得我们在谈恋爱,甚至有官员反复找我出口,但因我的不置可否,最后,不了了之。

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)

 

 

 

 

2、

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

 

 

 

 

3、

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

 

 

 

 

理所当然公司拔取的是合同到期不续约的办法,为了少付遣散费,并没有主动开掉任何一个人,而是利用每个月起首只发新加坡最低工资(当年是1450元),五险一金照交,上下班打卡仍然,只是不再有股票开户数和基金量的天职这种方法。

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()

 

实在在她显露这想法之后,他就开端背单词了,并且报名了海文考研的指引班。但面对12888元的昂贵学费,我不怎么惧怕,他看到了我的窘迫,就趁着补习班班老总换人的机会,找借口带我去蹭课,然后说课本忘记带了。就如此,我在她的佑助下,顺利上完了根基班的科目,复习的快慢也跟上了她的音频。

从此由于原先基础班的班COO重新回到带提升班和冲刺班,我的蹭课之途也宣告了尾声,从此进入自学阶段,这时距考试只有3个月的刻钟。

趁着复习的举行,我们的交流也越来越少,基本他也只在天天晨会时对自身前几日的题目做个应答,并顺便把带领班的材料带给本人看。

形影不离的日子一向频频到来年十一月5日的大学生入学考试,持续到本人落选香港电子航空航天大学,他落榜东京(Tokyo)大学,持续到我们一并填调剂志愿,持续到一道去面试、复试,持续到自己顺手入学,他因为做事年限不够再度落榜。

4、

大家的故事似乎到这边就暂告段落了,此后我们几乎没再见过面,除了有五遍,我把我抱有用过的引导书送给他看,因为自身比她的成就还高了部分,而他觉得自家用的那多少个指引书可能比引导班的更有含金量。后来透过另旁人直接知道他换了办事,不久又辞去了,然后重新拾起单词书,重新来过,而我辈的交换也基本中断。

5、

新兴再会面就是他入学的时候了,我即刻住在了该校的宿舍,而他因为落榜同济大学,再一次步我后尘而来,再会见,大家无奈又默契地相识一笑,嘿,又多了一层关系啦,同学!

6、

再然后,我们分别都恋爱了,相互有了力所能及互为取暖的人,对互相的关爱之心也深埋在了心底。再后来,会晤就变成了一种奢望,有时一年一遍都不可以担保,但奇迹还会在微信朋友圈里相互爱戴着对方的动态,满面春风着对方的斗嘴,也忧伤着互相的忧愁。

后记、

这就是大嫂和兄弟的故事,描述的从未有过大冰文字的呼之欲出,很多细节也全体掠过,描述的轩然大波也多是些稀松经常,但那段心路历程,已深埋在内心一个采暖的角落,偶尔拾起,仍感觉温暖。

以大冰的文字开端,也想用大冰的文字做结,一如那首歌词:

您自我的旧时光,如这绵长长路,永不消逝

我们俩披着雨衣,屋檐下伫立,阳光在上

星光不问赶路人,时光也不问,故事讲完了,一个一时也就得了了。

很荣幸,能陪着你一同走过这一个旧时光。

很光荣和你一头,给这段时间画上句号。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 mobile.365-838.com 版权所有