实习生 笔试 Adobe China 2012 R&D Intern Paper Test

正好是在本校,今天在学校又参加了一下adobe2012的实习生笔试,虽然知道这公司很难进,但是抱着去试一试的态度,看看牛逼公司都出什么样儿的题目吧。

一个半小时,时间不多不少。


刚刚拿到试卷的时候,略有不习惯,一叠试题,一叠答题纸,还全都是英文⋯⋯⋯⋯上一次做英语题目那个貌似是在大三笔试IBM的时候了吧,都两年过去了。

浏览试卷,10个选择题(6必做  +   4个JAVA // 4 C++),3个大题目,可以选择用Java或者C++来答题。


选择题

1.堆栈

2.链表,环形,双向单向

3.数学题:给你多少鞋,有多少颜色,多少只袜子,多少颜色,至少拿几个能凑够一双

4.数学题:从1到1000000的每个数的数字之和(123和456的数字之和不是579,而是21), 排除法,很容易

5.逻辑题:条件推理,例如:A推出B和非C,非D推出E和B,等等⋯⋯将题目转换成那样的条件逻辑,很容易推出答案来

6.给了一张图,问概率什么的,差不多自己也能慢慢算出来吧

JAVA选择题

7.synchronized关键字的作用范围,我觉得这个是考点吧,给出多线程同步有关系的一段代码。

8.tell the different of Hashmap and HashTable:这个我平常还真没怎么了解,就靠猜了,有一个允许null value而另外一个不让

9.Integer比较和 char的比较,直接用== 比较和  用 equals的比较

10.这个题目也是大家平常容易犯的错误之一吧,它给的代码里,switch的case中 没有break啊!


大题


一、多线程的同步,模型可以归结为比较经典的生产者消费者问题吧。让你写,如何生产,如何消费,如何开始线程三个代码块。


二、让你优化写一下石头、剪刀、布的这三个class,和他们的abstract class, 石头剪刀布三个类只用写一个就行,关键是写好他们的父类吧。 

        这个是一个开放性的题目,我个人想法,将这三者用一个环形链表放在一起,就很容易判断是石头>剪刀,剪刀 >布,布>石头了吧。


三、让我彻底栽跟头的一个题目,为此,我将题目 完全弄下来了:

 

Tommy and other 8 classmates were in a math class. Teacher prepared 9 hats with a 2-digit number printed on each hat and the 9 numbers differ from each other. Then the teacher gave each student a hat. Each student could only see the numbers on others' hats but could not see the number for his/her own. The teacher then wrote a number A on the blackboard and asked the 9 students:"Do you know if the number on your own hat can be divided by number A with no remainder(整除)? Please raise your hand if you do." Tommy and 3 other students raised their hands. The teacher then asked:"Thendo you know if the number on your own hat can be divided by 24 with no remainder? Please raise your hand if you do". Tommy and 5 other students raised their hands.


Presume the 9 students are smart enough and didn't lie, then what's the summary of the 8 numbers that Tommy could see from others' hats? Write down the number and the reason why you think so.

哎,其实关键点就是在于对题目的理解,理解OK,那就容易做,没理解的话(我考试时是彻底晕了),那就无可奈何啊!

重点是这句话的理解,段落中用红色字体标记出来了。


参考答案我上网搜索了一下:

1、那个老师问的是“知道不知道能否被整除”,可理解成“知道能被整除”和“知道不能被整除”两种情况,所以可以猜到:能被A整除的两位数只有5个,开头举手那4个人肯定是看到那5个人帽子上的数就是那5个,所以就知道了自己头上那个数肯定是不能被A整除的,所以就举手了。
则A有可能是:19、18、17。
相对应的,没有举手那五个小朋友帽子上的数字为:
19、38、57、76、95
或18、36、54、72、90
或17、34、51、68、85
2、两位数里能被24整除的有:24、48、72、96
因为只有3个小朋友没有举手,所以用第一步推理出的三种情况分别进行推理。
这时,通过分情况推理,只有在第一步时取A=18的情况能够符合情况:那5个没有举手的小孩知道了自己是能被A整除的,其中4个小孩能看到帽子上为“72”那个小孩的,所以就知道了自己是“18、36、54、90”的其中一个,所以他们知道自己不能被整除。
还有第二次没有举手的3个小朋友,他们帽子上的数字应该就是“24、48、96”了,剩下举了手的那2个,当然就是看到别的小朋友帽子上4个数字(24、48、72、96)都齐了,知道了自己帽子上的数不可能被24整除,所以举手。
3、综上所述,9顶帽子上的数字为:18、36、54、72、90、24、48、96和能举两次手的小明的,因为小明能从别的小朋友帽子上看到所有能被A和24整除的数,所以他知道自己不可能被A和24整除。
8个数加起来答案是438.

这道题的关键在于:那个老师问的是“知道不知道能否被整除”,可理解成“知道能被整除”和“知道不能被整除”两种情况。

原文地址:http://blog.csdn.net/davidbeckham2901/article/details/7464201


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值