测试题
作者:互联网
题目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 }
标签:初始化,100M,代表,测试题,int,static,100 来源: https://www.cnblogs.com/l-robot/p/15259521.html