文本描述
【技术岗!!!】 刚做完腾讯2017年校园招聘笔试题,在这里跟大家分享一下: 1、题目 这里写图片描述 2、我的思路 循环判断i(i从2到(输入值/2+1)),是否有满足i和(输入值-i)均为质数的情况。如果有, count加1。循环结束,输出结果。 3、我的实现 importjava.util.Scanner; publicclassTiyi { publicstaticvoidmain(String[]args) { Scannerscanner=newScanner(System.in); while(scanner.hasNextInt()) { intinput=scanner.nextInt(); intcount=0; for(inti=2;i<input/2+1;i++) { if(Tiyi.judge(i)&&Tiyi.judge(input-i)) { count++; } } System.out.println(count); } } //判断一个数是否为质数 publicstaticbooleanjudge(intinput) { for(inti=2;i<input/2+1;i++) { if(input%i==0) { returnfalse; } } returntrue; } } 4、总结 因为腾讯笔试时并没有验证答案的正确性,所以我并不知道我的解法是否完全正确,这里也 只是提供我的解题思路和方法,供大家参考。我认为我的解法有点笨,还请有更好方法的大 神,不吝赐教。如果发现我的解法有什么问题的话,欢迎批评指正,不胜感激! 下面是腾讯2017年校园招聘笔试题第二题,在这里跟大家一起分享: 1、题目 这里写图片描述 2、我的思路 这题我觉得题目说的很清楚了。用类似于二分查找的方法,记录最大值、最小值和中间值, 判断并记录在左区间(值为0)还是右区间(值为1)。因为精度要求为6位,所以循环6 次就可以。 3、我的实现 importjava.util.Scanner; publicclassTisan { publicstaticvoidmain(String[]args) { intlow=-90; inthign=90; Scannerscanner=newScanner(System.in); while(scanner.hasNextInt()) { intinput=scanner.nextInt(); Stringoutput=""; for(inti=0;i<6;i++) { intmiddle=(low+hign)/2; if(input>=middle) { output+="1"; low=middle; } else { output+="0"; hign=middle; } } System.out.println(output); } } } 4、总结 由于腾讯笔试时并没有验证答案的正确性,所以我并不知道我的解法是否完全正确,这里也 只是提供我的解题思路和方法,供大家参考。如果发现我的解法有什么问题的话,欢迎批评 指正,不胜感激!