UDN-企业互联网技术人气社区

板块导航

浏览  : 1746
回复  : 8

[面试经历] 2015年秋季腾讯校园招聘开发岗笔试题(四道大题)

[复制链接]
从来不作的头像 楼主
发表于 2015-9-15 18:25:04 | 显示全部楼层 |阅读模式
1.        在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码( Gray Code )。请编写一个函数,使用递归方法生成 N 位的格雷码,并且保证这个函数的健壮性。

       

         

        2.  有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案。

         


         




         


       


       
                3.  如图所示,系统中有三个进程 Producer , Transmitter 和 Consumer 。 Producer 和 Transmitter 共用缓冲区 ProduceBuf , Consumer 和 Transmitter 共用缓冲区 ConsumeBuf 。
       
       
                  
       
       
                Producer 进程负责不断地将输入信息送入 ProduceBuf ; Transmitter 进程负责从 ProduceBuf 中取出信息进行处理,并将处理结果送到 ConsumeBuf ; Consumer 进程负责从 ConsumeBuf 中读取结果并输出。
       
       
                  
       
       
                假设 ProduceBuf 中最多可放 12 个信息,现已放入了 3 个信息; ConSumeBuf 最多可放 6 个信息。试写出正确实现进程 Producer,Transmitter 和 Consumer 的同步与互斥的算法
       
       
                  
       
       
                (要求:用类 C 语言描述,条理清楚,注释恰当;)
       

         




         


       


       
                4.  春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
       


发表于 2015-9-15 19:21:01 | 显示全部楼层

这速度够快啊
使用道具 举报

回复

发表于 2015-9-15 21:18:06 | 显示全部楼层

速度真快!
使用道具 举报

回复

发表于 2015-9-15 21:52:24 | 显示全部楼层

赞~~ 互联网速度。。
使用道具 举报

回复

发表于 2015-9-15 22:36:41 | 显示全部楼层

第一道大题解答:如下图所示
使用道具 举报

回复

发表于 2015-9-15 23:48:33 | 显示全部楼层

http://blog.csdn.net/l19920622/article/details/48261261
使用道具 举报

回复

发表于 2015-9-16 01:43:00 | 显示全部楼层

报的前端,有点虐
使用道具 举报

回复

发表于 2015-9-16 04:11:24 | 显示全部楼层

第四道大题是编程之美上的寻找水王那题,上来就20几行代码先把这道题解决了
使用道具 举报

回复

发表于 2015-9-16 06:11:00 | 显示全部楼层

public class 数组中超过一半的数 {       public static int findMoreHalf(int []  A)   {     int count=1;   int result=A[0];   for(int i=0;i   #include    using namespace std;   void test(int a, int e, int f)   {   int b,c,d,g,h;   b=13-a;   if(b100)   return;   h=5-e;   if(h100)   return;   g=4+h-f;   if(g100)   return;   c=(4-a)*f;   if(c100)   return;   if(e!=0)   {   if((c-4)%e != 0)   return;   d=(c-4)/e;   if((b-d*g) == 4)   {   cout << a <<" "<< b  <<" "<< c <<" "<< d  <<" "<< e <<" "<< f  <<" "<< g <<" "<< h  <<" "<<endl;   }   }   else   {   if(c == 4)   {   for(d=0;d<=100;d++)   {   if((b-d*g) == 4)   {   cout << a <<" "<< b  <<" "<< c <<" "<< d  <<" "<< e <<" "<< f  <<" "<< g <<" "<< h  <<" "<<endl;   }   }   }   }     }   void func()   {   for(int a=0;a<=5;a++)   for(int e=0;e<=4;e++)   for(int f=1;f<=9;f++)   {   test(a,e,f);   }   }     void main (){   func();   }
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部