腾讯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语言部分函数的应用,以及对多种编程语言了解掌握能力的初步考察。
多谢分享,辛苦 写的挺好。。支持一下 看看后面是什么? 还有两道呢?{:301_992:} 企鹅招聘是不是必须是985 211 考都考了 gmh5225 发表于 2015-4-18 12:43
企鹅招聘是不是必须是985 211
不用,我们都不是学计算机的,越大的公司越不拘小格 这道题挺简单的= =
页:
[1]