[华为机试练习题]25.圆桌游戏
来源:互联网 发布:淘宝女式薄绒内衣套装 编辑:程序博客网 时间:2024/05/16 16:15
题目
描述: 详细描述:N个人围坐在一个圆桌上,顺时针报数,报数的初始值为第一个人设置。当有成员报出的数字为7的倍数或数字中包含7,则该人退出圆桌,而后由下一个人开始重新继续该游戏。实现以下接口: 1、设定输入原始的圆桌游戏的人数。以最先开始报数的人编号为1,顺时针排序。 2、设定第一个人的初始值,获取按照规则退出圆桌的人的编号。 3、结束游戏。样例:比如初始化为4人的游戏:第1轮初始值为1,退出为3;第2轮初始值为4,退出为4号;第三轮初始值为16,退出为2号;第四轮初始值为6,退出为1号;练习阶段: 中级
代码
/*---------------------------------------* 日期:2015-06-31* 作者:SJF0115* 题目:圆桌游戏 * 来源:华为机试练习题-----------------------------------------*/#include <iostream>#include <list>#include "oj.h"using namespace std;// 玩家数目int playerNum = 0;// 圆桌list<int> circle;// 开始玩家list<int>::iterator current;// 功能:设置玩家的个数// 输入: unsigned int nPlayNum 玩家的个数 0 < nPlayNum < 10000;// 输出:无// 返回:无void SetPlayerNum (unsigned int nPlayNum){ playerNum = nPlayNum; // 初始编号 for(int i = 0;i < playerNum;++i){ circle.push_back(i+1); }//for // 默认开始玩家 current = circle.begin();}// 判断是否被踢出局bool isOut(int num){ // 7的倍数 if(num % 7 == 0){ return true; }//if // 包含7 while(num){ if(num % 10 == 7){ return true; }//if num /= 10; }//while}// 功能:根据nInitialNum的值,获取到根据规则下桌的人的编号// 输入:unsigned int nInitialNum 本轮的初始值 0 < nInitialNum < 10000;// 输出:无// 返回:本轮退出圆桌的人的编号unsigned int GetPlayerOut (unsigned int nInitialNum){ int n = nInitialNum; int index = 0; while(playerNum >= 1){ if(isOut(nInitialNum)){ --playerNum; list<int>::iterator next = ++current; if(next == circle.end()){ next = circle.begin(); }//if --current; int outNum = *current; circle.erase(current); current = next; return outNum; }//if ++nInitialNum; ++current; if(current == circle.end()){ current = circle.begin(); }//if }//while return 0;}// 功能:游戏结束,释放资源// 输入:无// 输出:无// 返回:无void GameOver(){ circle.clear(); playerNum = 0; current = NULL;}
0 0
- [华为机试练习题]25.圆桌游戏
- 华为机试---搬圆桌
- [华为机试练习题]44.24点游戏算法
- 华为机试练习题汇总
- 华为机试在线练习题
- 圆桌游戏
- 圆桌游戏
- 圆桌游戏
- 华为机试准备--练习题(JAVA实现)
- [华为机试练习题]3.分解字符串
- [华为机试练习题]2.大数求和
- [华为机试练习题]6.整数排序
- [华为机试练习题]8.汽水瓶
- [华为机试练习题]9.坐标移动
- [华为机试练习题]13.火车进站
- [华为机试练习题]14.整数分隔
- [华为机试练习题]16.数字统计
- [华为机试练习题]18.矩阵相乘
- ParamQuery 的Demo
- php和c通过socket进行通信
- 系统调用和库函数的关系
- UNIX/LINUX使用expect实现人机自动交互功能
- java.util.zip类 ZipInputStream
- [华为机试练习题]25.圆桌游戏
- PHP+MySQL分页原理实现
- 如何当一个android面试官
- Apache Http Client 4 上传多个文件 (示例代码可在 github 上找到)
- 杭电 HDU ACM 1754 I Hate It (线段树)
- 国际化困境(第二篇)
- AutoLayout中的Visual Format Language
- 程序员技术练级攻略
- 测试面试突击——阅读笔记