编程题(1):笔试题-京东软件测试2018实习招聘
2017-04-08 11:22
603 查看
题目描述小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,...,pn。你能帮他算出他通过考试的概率吗?
输入 输入第一行一个数n(1<=n<=100),表示题目的个数。第二行n个整数,p1,p2,...,pn。表示小明有pi%的概率做对第i题。(0<=pi<=100) | 样例输入 4 50 50 50 50 |
输出 小明通过考试的概率,最后结果四舍五入,保留小数点后五位。 | 样例输出 0.31250 |
时间限制C/C++语言:1000MS其它语言:3000MS | 内存限制 |
package cn.com.jingdong; import java.util.Scanner; public class Main1 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); double[] p = new double ; double[][] dp = new double[n+1][n+1]; dp[0][0] = 1; for( int i=0;i<n;i++){ p[i] = sc.nextInt()/100.0; } for(int i=1;i<=n;i++){ dp[i][0] = dp[i-1][0]*(1-p[i-1]); for(int j =1;j<=i;j++){ dp[i][j] = dp[i-1][j-1]*p[i-1]+dp[i-1][j]*(1-p[i-1]); } } double result = 0; for(int i =(3*n+4)/5;i<=n;i++){ result += dp [i]; } // BigDecimal b = new BigDecimal(result); // double f1 = b.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue(); //四舍五入,保留小数点后5位 System.out.println(String.format("%.5f", result)); //四舍五入,保留小数点后5位,以后做题选择这种方式 } } }
站队(京东2017实习生真题)有一条很长的队伍,队伍里面一共有n个人。所有的人分为三类:警察,小偷和普通人。将队伍里面的人从前到后由1到n编号,编号为i的人与编号为j的人的距离为i与j之差的绝对值。每一个警察有一个能力值x,表示他能够监视与他距离不超过x的所有人,小偷被警察发现当且仅当他被一个或多个警察监视到。你知道在整条队伍中,一共有多少个小偷会被警察发现吗?
题目描述
输入 输入有两行,第一行一个数n(1<=n<=100000),接下来一行有一个长度为n的字符串,依次表示队伍中的每一个人。如果某一位是1-9的某个数字x,表示这一位是一个能力值为x的警察;如果某一位是字符X表示这一位是小偷;如果某一位是字符#表示这是一个普通人。输入保证不会出现其它字符。 | 样例输入 9 X1X#2X#XX |
输出 输出一个数,整条队伍中被警察发现的小偷总数。 | 样例输出 3 |
时间限制C/C++语言:2000MS其它语言:4000MS | 内存限制C/C++语言:65536KB其它语言:589824KB |
package cn.com.jingdong; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLine(); String str = sc.nextLine(); // 不妨利用数组T(此处用的是list)储存小偷的位置,顺序读取字符串,当读取到X即小偷时,向数组T中记录小偷位置。如:Ti=j表示队列位置j处有一个小偷,该小偷是顺序读取的第i个小偷。 List<Integer> list = new ArrayList<Integer>(); // 利用数组P记录警察的监视范围,数组P长度和字符串长度相同,初始状态均为0,顺序读取字符串,当遇到数字即警察时, //令:Pjk= 1.....Pj+k= 1表示队列jk到j+k处于监视范围内。j表示警察的位置,k表示警察的监视范围。 int[] p = new int ; for (int i = 0; i < n; i++) { char temp = str.charAt(i); if (temp == 'X') { list.add(i); } else if ('1' <= temp && temp <= '9') { int left = Math.max(0, i - (temp - '0')); int right = Math.min(i + (temp - '0'), n - 1); for (int x = left; x <= right; x++) { p[x] = 1; } } } int count = 0; //如果:PTi= 1表示第i个小偷处于监视范围内。令:count=count+ 1 for (int i = 0; i < list.size(); i++) { if (p[list.get(i)] == 1) { count++; } } System.out.println(count); } }方法二:
package cn.com.jingdong; import java.util.Scanner; public class Main3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLine(); String str = sc.nextLine(); char[] a = str.toCharArray(); int count = 0; for (int i = 0; i < n; i++) { char temp = a[i]; if ('1' <= temp && temp <= '9') { //left,right为警察可以监视的范围 int left = Math.max(0, i - (temp - '0')); int right = Math.min(i + (temp - '0'), n - 1); for (int x = left; x <= right; x++) { if(a[x]=='X'){//在可监视范围内,遇到小偷就+1,并把小偷转换为普通人,防止之后再多次技术 count++; a[x]='#'; } } } } System.out.println(count); System.out.println(str); } }
方法三:
package cn.com.jingdong; import java.util.HashSet; import java.util.Scanner; public class Main3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String s = sc.next(); HashSet<Integer> set = new HashSet<>();//存放可监视范围内的小偷所在位置索引,用set可以去除重复计数的小偷 for (int i = 0; i < n; i++) { if (Character.isDigit(s.charAt(i))) { int k = s.charAt(i) - '0'; if (k == 0) continue; int l = Math.max(0, i - k); int r = Math.min(n - 1, i + k); for (int x = l; x <= r; x++) { if (s.charAt(x) == 'X') set.add(x); } } } System.out.println(set.size()); } }
相关文章推荐
- 编程题(3):京东-笔试题-2018实习招聘
- 编程题(2):京东-笔试题-2018实习招聘
- 京东2016校园实习生招聘系统测试岗在线笔试编程题
- 2015腾讯校园招聘软件测试部分笔试题
- 京东2015年应届生招聘笔试题(A)卷答案编程题和附加题部分
- 京东2017实习生招聘在线笔试编程题
- 京东2018校招在线笔试编程题①
- 2014校园招聘京东软件开发类笔试(完整版)
- 编码-京东实习笔试编程题-糖果问题-动态规划
- 京东2017实习招聘笔试题
- 找实习:今日头条--软件测试---笔试题
- 京东2018秋招前端笔试编程题
- 58同城2014校园招聘软件测试笔试题
- 软件测试工程师-meitu(2014年校园招聘笔试)
- 15 腾讯春季软件测试招聘实习 试题
- 京东2017实习生招聘在线笔试编程题
- 京东2013校园招聘软件研发笔试题
- 2014京东校园招聘-软件开发笔试题
- 编码-京东实习笔试编程题-生日礼物-动态规划
- 京东2017实习生招聘——在线笔试编程题总结