欢迎斧正
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(" 取出的顺序为:"); int size = linkedList.size(); for (int i = 0; i <size ; i++) { System.out.print(linkedList.removeLast()+" "); } }