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

背景

小伙伴参加了企鹅厂的2015校招笔试,有五道大题,拿出三道算法类的题尝试着实现实现。这是第一道题:抽奖
第二题:整形长度计算算法可以看这里
第三题:C/S模型压力算法设计实现

题目

这是第一道题,题目大意是:一个商场进行一场抽奖活动,其中有两个奖项,第一个奖项A抽中的概率是1/6,第二个奖项B抽中的概率是5/6;用C语言编码实现这个抽奖程序。 题目通过一个XML文档给出。

分析

题目相对简单,考察对随机数的应用,大概思路应该是:

  1. 生成一个真随机数
  2. 随机数对6取余,得到的余数一定是0、1、2、3、4、5共六个数
  3. 将这六个数分成两份(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取余
    if0 == ran)  // 若ran为0
        return true; // 返回true
    else           // 若ran不为0 ,返回false
        return false;
}

总结

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值