打发时间

Posted kitor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打发时间相关的知识,希望对你有一定的参考价值。

欢迎斧正

1、统计 int[] arr=1,4,1,4,2,5,4,5,8,77,88,5,4,9,6,2,4,1,5中每个数字出现的次数

 @org.junit.Test
    public void test()
        HashMap<Integer, Integer> hashMap=new HashMap<>();
        int[] arr=1,4,1,4,2,5,4,5,8,77,88,5,4,9,6,2,4,1,5;
        for (int i = 0; i < arr.length; i++) 
            if(hashMap.get(arr[i])==null)
                hashMap.put(arr[i],1);
            else 
                hashMap.put(arr[i],hashMap.get(arr[i])+1);
            
        
        Set<Integer> integers = hashMap.keySet();
        for (Integer integer : integers) 
            System.out.println(integer+"出现"+hashMap.get(integer)+"次");
        
    

2、小明和小红去书店买同一本书,小明带的钱差4.98元,小红差1分钱,他俩的钱合起来还不够,问小明带多少钱,小红带多少钱,书的定价是多少

 String[] names = "小明", "小红", "书价";
        double[] arr = new double[3];
        //小明的钱
        for (int i = 0; ; i++) 
            //小红的钱
            for (int j = 0; j < i; j++) 
                //小明的钱加一分等于小红的钱加499分
                //两个人的钱加起来也不够
                if (i + 1 == j + 499 && i + j < i + 1 && i + j < j + 499) 
                    arr[0] = i / 100.0;
                    arr[1] = j / 100.0;
                    arr[2] = (i + 1) / 100.0;
                    for (int k = 0; k < arr.length; k++) 
                        System.out.println(names[k] + "是" + arr[k]);
                    
                    return true;
                

            
        

3、小张参加一个聚会,聚会中每个人都需要相互握手,他注意到大家总共需要握手45次,那么总共有多少人参加了聚会

定义一个方法求当人数为num时的握手次数

public static int shackMan(int num) 
        if (num < 2) 
            return 0;
         else if (num == 2) 
            return 1;
         else 
            return (num - 1) + shackMan(num - 1);
        
    

然后调用

        for (int i = 0; ; i++) 
            if (shackMan(i) == 45) 
                System.out.println("共有" + i + "人参加宴会");
                break;
            
        

4、一个青蛙向井口怕,井深10m,它每上升3m下降两米,问它需要爬几次能爬出井

    public static int frogClimb(int climbed, int time) //climbed表示已爬,time表示当前是第几次爬
        if (climbed + 3 >= 10) 
            return time;
         else 
            return frogClimb(time + 1, time + 1);
        
    

调用出传入0,1即可

 5、使用Linked实现先入先出的队列效果

    @org.junit.Test
    public void test()
        LinkedList linkedList=new LinkedList();
        char[] chars=‘a‘,‘c‘,‘d‘,‘s‘,‘s‘,‘e‘,‘f‘;
        System.out.println("存储的顺序为:");
        for (char c:chars)
            System.out.print(c+" ");
            linkedList.addFirst(c);
        
        System.out.println("\n取出的顺序为:");
        int size = linkedList.size();
        for (int i = 0; i <size ; i++) 
            System.out.print(linkedList.removeLast()+" ");
        
    

 

以上是关于打发时间的主要内容,如果未能解决你的问题,请参考以下文章

随便写写,就当是打发时间

上班无聊,自己用python做个小游戏来打发时间

科研之余大家都干什么打发时间?

撒打发斯蒂芬

打发打发

springboot templates 下的HTML访问不到