吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6498|回复: 8
收起左侧

[C&C++ 转载] 腾讯2015校招笔试之(一)抽奖算法思路实现

[复制链接]
MichealGeng 发表于 2015-4-17 13:52
本帖最后由 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五个项。对随机数取余后的数进行比较,看它那一份中,借此判断出本次抽奖的结果



源代码
[C] 纯文本查看 复制代码

#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语言部分函数的应用,以及对多种编程语言了解掌握能力的初步考察。





免费评分

参与人数 2热心值 +2 收起 理由
ZHZXAN + 1 我很赞同!
黑龍 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ryanno1 发表于 2015-4-17 15:24
多谢分享,辛苦
曾经流过的泪 发表于 2015-4-17 14:01
tianqing268 发表于 2015-4-17 14:11
qwe86453242 发表于 2015-4-17 14:24
还有两道呢?
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
这道题挺简单的= =
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 14:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表