题目

解决代码及点评

/*
n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m
个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,
从被删除数字的下一个继续删除第 m 个数字。求出在这个圆圈中剩下的最后一个数字。
*/#include <iostream>
using namespace std;// 链表节点,我们使用链表来进行操作,目的是为了简化,当有人退出时,在链表删除更加方便
struct LinkNode
{LinkNode(int n):nValue(n){}int nValue;LinkNode *pNext;
};int main()
{int m, n, i;cout<<"请输入n的值:";cin>>n;cout<<"请输入m的值:";cin>>m;// 建立 0~n+1的链表LinkNode *pHead = new LinkNode(0);pHead->pNext = pHead;LinkNode *pCur = pHead;for (i = 1; i < n; i++){LinkNode *pTmp = new LinkNode(i);pCur->pNext = pTmp;pTmp->pNext = pHead;pCur = pCur->pNext;  // pCur总是指向最后一个节点,每次都把新节点加入到pCur后面}// 游戏在这里开始while (pHead != pHead->pNext)  // 当环形单链表只剩下一个元素时,就结束 pHead == pHead->pNext表示只有一个元素{for (i = 1; i < m-1; i++) // 在这里数数{pHead = pHead->pNext;}// 数到之后开始删除操作pHead->pNext = pHead->pNext->pNext;  //删除pHead的下一个元素pHead = pHead->pNext;   //将pHead下移一位,从删除的下一位开始重新数}// 最后打印剩下的valuecout<<pHead->nValue<<endl;return 0;system("pause");return 0;
}

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn

下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”

2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行

程序运行结果






转载于:https://www.cnblogs.com/niulanshan/p/6175162.html

基于visual Studio2013解决面试题之0307最后谁剩下相关推荐

  1. 基于visual Studio2013解决面试题之0901奇偶站队

     题目 解决代码及点评 /*给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数 解决方法:两边同时遍历,如果遇到左边偶数或者右边基数,则交换 */#include <ios ...

  2. 基于visual Studio2013解决面试题之0403串联字符串

     题目 解决代码及点评 /*有 n个长为 m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环 ...

  3. 基于visual Studio2013解决面试题之0804复杂链表

     题目 解决代码及点评 /*复杂链表的拷贝,现在有一个复杂链表,完成一个clone函数拷贝一个链表复杂链表是指struct Node{struct Node* _next;struct Node ...

  4. 基于visual Studio2013解决面试题之0209最大堆排序

     题目 解决代码及点评 /*最大堆是一个数组数据结构,任意一个下标i,它的值大于i*2和i*2+1的值(i从1开始)当这样的堆形成时,最大值在数组最开始的位置.当这样的堆形成后,将第一个元素交换 ...

  5. 基于visual Studio2013解决面试题之1002公共子串

     题目 解决代码及点评 /*求两个字符串的最小公共子串这道题简单的两个字符串遍历即可 */#include <iostream> using namespace std; const ...

  6. 基于visual Studio2013解决面试题之1007鸡蛋和篮子

     题目 解决代码及点评 /*n个鸡蛋放m个篮子,篮子不能为空,有多少种方法 */#include <iostream> using namespace std; const int ...

  7. 基于visual Studio2013解决面试题之0601二叉树深度

     题目 解决代码及点评 /*求二叉树深度 */#include <iostream> #include <stack> using namespace std;templ ...

  8. 基于visual Studio2013解决面试题之0402合并升序链表并去重

     题目 解决代码及点评 /*两个升序链表合并,并要求去掉重复元素 */ #include <iostream> using namespace std;class LinkNode ...

  9. 基于visual Studio2013解决面试题之0802数字最多元素

     题目 解决代码及点评 /*查找数组中超过一半的那个元素方法1:每次删除数组中一对不相同的value,最后剩下都是想通的数字时,就是超过一半的那个元素了方法2:排序后,取中间元素即可 */#in ...

最新文章

  1. UVa12096.The SetStack Computer
  2. 影像组学视频学习笔记(23)-主成分析PCA、降维和特征筛选的区别、Li‘s have a solution and plan.
  3. 详细介绍Oracle DBA工作职责
  4. CompletableFuture多任务组合
  5. 使用Spring Security保护REST服务
  6. C语言 ,嵌入式 ,数据结构 面试题目(3)
  7. Verizon的SDN策略:不鸣则已,一鸣惊人?
  8. java ee 值范围_javaEE四大作用域(共享域)
  9. 李瑾博士:信誉的建立是否“不计成本”?
  10. 去哪儿 Api 自动化测试实践
  11. 基于卷积神经网络的人脸识别
  12. 图神经网络实战案例-新冠疫苗项目实战,助力疫情!
  13. sqlserver 错误大全
  14. FineReport10 决策报表常用javascript脚本
  15. 叶雕——叹为观止的艺术!
  16. Ubuntu下搭建R语言开发环境
  17. PTC Creo 5.0.2.0 + HelpCenter Win64 中文破解版
  18. python中一般使用几个空格表示缩进_为什么Python pep-8强烈建议使用标签上的空格来缩进?...
  19. python批量裁剪图像
  20. stm32F407 ADC

热门文章

  1. jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)
  2. LeetCode 2022春季赛 1. 宝石补给
  3. LeetCode 1298. 你能从盒子里获得的最大糖果数(BFS)
  4. 04.卷积神经网络 W2.深度卷积网络:实例探究
  5. LeetCode 1490. 克隆 N 叉树(DFS/BFS)
  6. 剑指Offer - 面试题64. 求1+2+…+n(递归)
  7. LeetCode 1284. 转化为全零矩阵的最少反转次数(BFS 矩阵状态编码解码)
  8. LeetCode 739. 每日温度(单调栈)
  9. mysql cluster 查看数据库表名称_MySQL Cluster如何创建磁盘表方法解读
  10. mac python安装太慢_【已解决】Mac中给pip3添加代理以提升下载python包的速度