【腾讯面试题】:斗地主随机

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_23100787/article/details/49765679

题目

腾讯的qq游戏当中,最多人玩的游戏就是斗地主了,每一句游戏开始时,服务 器端都要洗牌,以保证发牌的时每个人拿的牌都是随机的,假设用1-54来表示54 张不同的拍,请你写一个洗牌算法,保证54张牌能随机打散!

思考

这个算法就是随机出1-54的数字,让他每个都不同即可,然后我们就可以通过把54张牌一一匹配到每张牌即可
方法:通过rand生成1-54之间的随机数,然后判断该随机数是否已经出现过,没出现过就加入选牌序列

代码

//////////  QQ斗地主发牌
#include<iostream>
#include <ctime>
using namespace std;
int num[54];
int in(int temp,int count){
    for(int i=0;i<count){
        if(num[i]==temp) return 0;
    }
    return 1;
}
int main(){
    int count=0,temp;
    srand(time(NULL));
    while(count<=54){
        temp = rand()%54+1;
        if(in(temp,count)){
            num[count]=temp;
            count++;
        }
    }
    for(int i=0;i<54;i++){
        cout<<num[i]<<" ";
    }
}

运行截图:
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页