资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
网易游戏游戏开发工程师1.一次考试,有25人参加,有ABC三题,每人至少会做一题,在不会做A的人中,会做B的人是会做C的人的两倍,在会做A的人中,只会做A的人比其他的少一人,不会做A的人和只会做A的人数相等,问只会做B的有几人?解:设绿色加白色为X紫色加白色为X/2 白色为Z 红色为Y 蓝色为Y+1所以由条件可得X+0.5X-Z+2Y+1=25 X+0.5X-Z=Y故3X=16+2Z 当且仅当Z=4,X=8时为整数解,故题目答案为X-Z=4人或以下三组解: Z=1,X=6;Z=7,X=10; Z=10,X=12;2.李氏夫妇请4对夫妇来家吃饭,已知每人不和自己和配偶握手,每人至少握手一次,不重复和人握手,李先生最后一问每人握手次数都不一样,问李太太握手几次.解:既然每人次数不同,就说明有1到8八种次数,每人一种.初始:87654321(00)括号内为李氏夫妇的次数从8看起,那个人肯定和另外的8人握手,否则没有8次,而且他的配偶肯定是7次,否则不可能有8次握手的人.(X表示已计算的握手)第一次:X7543210(11)第二次:XX432100(22)第三次:XXX31000(33)第四次:XXXX0000(44)所以李先生和李太太都握手了4次.3.几何题如图,两圆交于AB两点,由A作直线交于两圆于CD,问CD何时最长?并证明.提示:相同弧段的圆周角是圆心角一半感谢影子情人提供解法答案是让AB和CD垂直,这样BD和CB是两个直角三角形的斜边提示可知道是直径得整.4.假设一副扑克牌只有A,2,3,4,5,6六张,且每张有任意多张,没有不同花型(即没有桃心梅方),用PQRST表示不同的牌面,计算下列概率,并排顺序PQRST,PPQRS,PPQQR,PPPQR,PPPPR,PPPPP,PPPQQ大概解法:概率里面的什么分子分母实在懒得打,我还用几次方和阶乘表示了相对关系,这样比较容易看,不要用大学的概率统计公式,直接用高中生想法,很容易求解.注意,每种牌的数量不限制,所以去除某种特定牌的概率是1/6,但是取出第一张任意牌的概率是6/6,同理第二张不同牌的概率是5/6,所以第一个概率是6!/65然后乘以6,因为有六种取法,C65嘛等于C61,也就是6!/64后面的也差不多,顺便说一下,5张一样的好难啊,竟然只有6/65,也就是1/1296,呵呵,要珍惜炸弹啊.然后乘以C61,也就是6/645已知二叉树的先序和中序遍历字符串,编程实现输出后序遍历字符串,如果没有成功输出Failed,最后分析时间和空间复杂度解:这是标准的ACM 2255题,NOIp和NOI中也有一样的题目,很经典的.我也提供一下网上的标准答案,懒得打了.时间复杂度是2的n次方吧我感觉是的,没有空间消耗,除了栈的开辟消耗空间.#include #include using namespace std;void PrintPostOrder(const string & preorder, const string & inorder, int start1, int start2, int size)if(size = 1)cout preorderstart1;return;if(size = 0)return;int i = inorder.find(preorderstart1);PrintPostOrder(preorder, inorder, start1+1, start2, i-start2);PrintPostOrder(preorder, inorder, start1+1+i-start2, start2+1+i-start2, size-i+start2-1);cout preorder inorder)PrintPostOrder(preorder, inorder, 0, 0, preorder.size();cout endl;游戏测试一位游戏业HR给出了一份招聘游戏测试的题,觉得挺有趣,有必要拿来分享一下。顺便让各位看观了解一下游戏测试是个什么活。测试面试题程序部门按照如下需求文档,设计了一个游戏程序:用面向对象的思想,设计一个简单的游戏框架。程序需求如下:1. 用命令行模式实现,不需要界面2. 游戏世界中,存在5个房间:A、B、C、D、E。有些房间之间存在连通性(从一个房间所能到达的另一个房间),而有些房间之间则不存在。具体如下: 双向:AB、AC、CD、单向:D-A、D-E、E-B3. 玩家可以控制角色从一个房间走到另一个房间(敲入命令goto A,则进入A房间),每次只能走一步路径。起始房间为A每次进入房间,需要列出下一步可进入的房间。 例如:在房间C敲入:goto D,会列出: A E C4. 每个房间里存在不同的NPC,NPC具有名称,玩家进入一个房间后,需要列出该房间的所有NPC名称。具体如下:A房间:无B房间:杂货商、渔民C房间:武器商D房间:防具商E房间:大海龟、海猫猫5. NPC具有简单的对话功能,敲入talk NPC名称,则可以看到NPC所说的话。对话内容可自行设计。扩展需求1玩家拥有金钱和背包,初始金钱为100,背包中有5个格子,每个格子中可以放下一个物品。初始物品为“回城符”、“小刀”扩展需求2其中的一些NPC具有交易功能,玩家可以将自己身上的物品交易给NPC以获得金钱、或者通过身上的金钱购买物品。具体如下:杂货商:出售 蜡烛(20)、小刀(30)、回城符(10) 渔民: 出售 鱼肉(10) 武器商:出售 乌木剑(50) 防具商:出售 木盾(40) 括号里的表示出售价格,同时也是收购价格。打命令“shop NPC名称”可以列出该NPC所出售的物品和价格打命令“buy NPC名称 物品名称”可购买物品打命令“sell NPC名称 物品名称”可出售物品打命令item可以列出自己背包中的物品。背包满的情况下,不允许再买入物品,并提示“背包满”。阅读文档时间为1小时,阅读文档完毕后请在2小时内完成如下题目:1, 请为按照文档画出五个房间和他们之间的路径和方向;2, 按照文档说明和,填写下表Start roomInputOutput示例AGoto AB,CAGoto BAGoto CAGoto DAGoto EBGotoABGoto BBGoto CBGoto DBGoto ECGoto ACGoto BCGoto CCGoto DCGoto EDGoto ADGoto BDGoto CDGoto DDGoto EEGoto AEGoto BEGoto CEGoto DEGoto E 3, 针对扩展需求1和2,测试背包功能,描述你的测试思路和方法。一道AS3面试题的解答题目:对一批编号为1-100全部开关朝上(开)的灯进行以下操作:开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关以此类推一直计算到100为止。目的:请trace出经过反复开关操作后所有关闭的灯的开关编号。这是我写给大家看的易懂版本:varn:int,m:int; varrange:int=100; for(vari:int=1;ii/n) break; if(i%n=0) if(i/n=n) trace(结果,i); break; n+; 下面是写着玩的缩写版本,不过正常写项目代码,我不会这样干的,在这儿只是娱乐一下而已。下面这段代码想玩就看看,不想玩的看上面就行了,判断原理是一样,没区别!varn:int=1,range:int=1000; for(vari:int=1;i0)n=ni/n?0:!(i%n)?i/n=n?-1:n+1:n+1; if(n=-1)trace(结果,i); 我将range都改成100000后,第一种方法耗时7233毫秒,第二种缩减的写法耗时1840毫秒。对于易读易懂,你会选择那种方法呢?对于暗泪同学的回复,下面增加一点内容:其实上面写的是正常算法,如果2亿次,通过分析题目,可以得出只要该数能被开平方时,就是关闭状态,因此这道题目如果是写在项目里面,可以这样写:varrange:int=1000000000; varnum:int=Math.pow(range,0.5); for(vari:int=1;i=num;i+) trace(结果,i*i) 我测试过10亿次的效率,仅需要6毫秒何其快啊!
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号