测试题

题目1:一个球从100米高度*落下,每次落地后反弹回原高度的一半,然后再落下。

求它在第10次落地时,共经过了多少米?

 1 public static int getSumL(int n){
 2 // 初始化第一次长度100M
 3 int L = 100;
 4 // 初始化默认长度100M
 5 int totalL = 100;
 6 // 初始化第一次调用长度50M
 7 int i = 50;
 8 for(n=2;n<=10;n++){
 9 // 每次弹跳做一次往返行程长度(长度为上次的一半)
10 totalL = totalL + 2*i;
11 // 计算下次行程长度
12 i = i/2;
13 }
14 return totalL;
15 
16 }

 

题目2:一副扑克牌,随机抽取5张,判断是否为葫芦。
葫芦:5张牌中有3张是一样的,剩下的两张是一样的,例如 ”KK888“,大小王可以代替任意牌。
(可以用数字0代表大小王,1代表A,11代表J,12代表Q,13代表K)
注:抽牌发牌过程可忽略,主要针对5张牌组合的判断逻辑。

 1 // 判断函数 isHuLu
 2 // list 扑克组装的参数
 3 public static boolean isHulu(List list){
 4 // 将扑克解析为map,key为牌的数字,value为数量
 5 map = new HashMap();
 6 for(i=0;i<list.length,i++)
 7 {
 8 // list数据作为key放入map,如果key取value不为null,则value+1,如果key取value为null,则放入key并初始化值为1
 9 if(map.get(i) != null){
10 map.put(i,map.get(i)+1);
11 }else{
12 map.put(i,1);
13 }
14 }
15 
16 // 判断map的数量=2或者=3执行,其他返回false
17 if(map.size == 2 || map.size == 3){
18 // 判断map=2
19 if(map.size == 2 ){
20 // 判断map中两个key的value成绩为6 (包含00888这个情况) return true 否则 return false
21 return isTrue(map,6)
22 }else{
23 // 判断是否包含0,不包含0直接返回
24 if(map.get(0)==null){return false;}
25 // 判断0的数量: 一个0的情况:kk880,k0888,
26 if(map.get(0)==1){
27 return isTrue(map,4) || isTrue(map,3);
28 }else{
29 //两个0的情况,k0880,kk800
30 return isTrue(map, 4);
31 }
32 }
33 
34 }
35 
36 return false;
37 }
38 
39 // 抽取判断成绩和期望值的方法
40 pubblic static boolean isTrue(HashMap map,int number){
41 int value1 = 1;
42 for (int value : map.values()) {
43 value1 = value*value1;
44 }
45 return (value1 ==number) ? true : false;
46 }

 

上一篇:Python3处理XML文件学习


下一篇:[git] 上传大于100M的文件到github远程仓库中