MichealGeng 发表于 2015-4-17 13:52

腾讯2015校招笔试之(一)抽奖算法思路实现

本帖最后由 MichealGeng 于 2015-4-18 12:10 编辑


背景
小伙伴参加了企鹅厂的2015校招笔试,有五道大题,拿出三道算法类的题尝试着实现实现。这是第一道题:抽奖

第二题:整形长度计算算法可以看这里


题目
这是第一道题,题目大意是:一个商场进行一场抽奖活动,其中有两个奖项,第一个奖项A抽中的概率是1/6,第二个奖项B抽中的概率是5/6;用C语言编码实现这个抽奖程序。 题目通过一个XML文档给出。
分析
题目相对简单,考察对随机数的应用,大概思路应该是:

[*]生成一个真随机数
[*]随机数对6取余,得到的余数一定是0、1、2、3、4、5共六个数
[*]将这六个数分成两份(A和B),其中一份只有0这一个项,其余一份有1、2、3、4、5五个项。对随机数取余后的数进行比较,看它那一份中,借此判断出本次抽奖的结果



源代码


#include<stdio.h>
#include<time.h>
#include<stdlib.h>
bool draw();      // 抽奖函数,结果为A返回true,结果为B返回false
int main()
{
      char ret;// 记录结果
      if(draw())// 进行抽奖
                ret='A';// 返回true,抽奖结果为A
      else      // 否则结果为B
                ret='B';
      printf("抽奖结果为:%c\n",ret);// 输出抽奖结果
      return 0;
}
bool draw()                        // 抽奖函数实现
{
      int ran;      // 记录随机数对六取余的值
      srand( (unsigned)time( NULL ) );// 置随机数种子
      ran = rand()%6; // 随机数对6取余
      if(0 == ran)// 若ran为0
                return true; // 返回true
      else         // 若ran不为0 ,返回false
                return false;
}




总结
这抽奖问题相对简单,主要考察队C语言部分函数的应用,以及对多种编程语言了解掌握能力的初步考察。





ryanno1 发表于 2015-4-17 15:24

多谢分享,辛苦

曾经流过的泪 发表于 2015-4-17 14:01

写的挺好。。支持一下

tianqing268 发表于 2015-4-17 14:11

看看后面是什么?

qwe86453242 发表于 2015-4-17 14:24

还有两道呢?{:301_992:}

gmh5225 发表于 2015-4-18 12:43

企鹅招聘是不是必须是985 211

关谷神奇 发表于 2015-4-18 12:55

考都考了

MichealGeng 发表于 2015-4-18 15:04

gmh5225 发表于 2015-4-18 12:43
企鹅招聘是不是必须是985 211

不用,我们都不是学计算机的,越大的公司越不拘小格

pxm2525 发表于 2015-4-19 22:42

这道题挺简单的= =
页: [1]
查看完整版本: 腾讯2015校招笔试之(一)抽奖算法思路实现