京东Java笔试,赛马的这个OJ太迷了把

选择题

楼主数学系的,所以涉及到网络的东西答的比较渣,其它还好。

编程

我就不想说啥了,本地过,上去一直没法AC。。这OJ太迷了。。。多少打个log出来,哪怕一行也行啊!!HUST的OJ多少还有点提示(虽然大多数情况下没啥卵用),至少比没有强啊。

第一题

幸运数,暴力解的,超时不意外。所有题答完还有20min,优化算法一直没想出来。

第二题

第K个幸运数,列个等式 图片说明 (这MD编辑器不支持公式真蛋疼)

K是第K个幸运数,求出最大的n,得到相对应的M的值,把M转化成2进制,然后replaceAll:0->4, 1->7.位数不足的高位用0补齐.

简答题

  1. volatile和synchronized的异同点。
  2. Java相关规范。只写上了个JSR-133
  3. InterruptedException异常的出现原因和处理方式,如何安全终止线程
  4. 实习过程中有没有相关的优化经历,写两个。我写的是项目里的。
  5. Object中equals、hashCode、toString、clone、wait、notify、notifyAll的相关约定和使用。
全部评论
可以把代码贴出来看看吗?
点赞 回复 分享
发布于 2016-09-05 21:50
import java.util.*; public class test{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int t = scanner.nextInt(); for(int i=0;i<t;i++){ long n = scanner.nextInt();//我写的int错了,囧 int weishu = 1; long temp = 0; while(temp<n){ temp += Math.pow(2, weishu); weishu++; } weishu--; temp -= Math.pow(2, weishu); long temp2 = n-temp-1; //System.out.println(weishu); //System.out.println(temp2); String s = ""; int weishu2 = 0; while(temp2!=0){ if(temp2%2==0){ s = "4"+s; weishu2++; } else{ s = "7"+s; weishu2++; } temp2 /= 2; } while(weishu2<weishu){ s = "4"+s; weishu2++; } System.out.println(s); } } } 没过,可能是输入我写的int,输入写成long估计能过,555555
点赞 回复 分享
发布于 2016-09-05 22:37

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
点赞 6 评论
分享
牛客网
牛客企业服务