【腾讯面试题】:斗地主随机
2015-11-10 21:35
991 查看
题目
腾讯的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]<<" "; } }
运行截图:
相关文章推荐
- ——黑马程序员——OC中Foundation框架NSSArray用法总结
- Android面试那些事——黎明前的黑暗
- [lintcode]两个字符串是变位词
- 给Android程序员的一些面试建议
- Java面试必问算法题
- 程序员面试IT公司的37个小贴士
- [原创] js作用域(必考面试题)
- P154、面试题28:字符串的排列
- 面试题01-数据存储
- Java里String类基础及面试常见题
- Hibernate 面试总结
- JAVA之基础面试题(一)
- 黑马程序员——基础知识——线程间的通信
- 黑马程序员--Java基础--异常及其简单处理
- 黑马程序员-Java 集合框架(二)-Map、Collections、新特性
- 黑马程序员--Java基础--类和类之间的基本关系
- 几个 Java main方法面试题
- 黑马程序员——基础知识——多线程
- 黑马程序员_java新手路过花个十秒钟看一下,不然以后极有可能你也和我一样悲剧
- 黑马程序员-Java String类