哈尔滨营销型网站建设,视觉设计的网站,品牌型网络营销目标,百度服务电话在线人工#xfeff;#xfeff;#xfeff;题目解决代码及点评/*
n 个数字#xff08;0,1,…,n-1#xff09;形成一个圆圈#xff0c;从数字 0 开始#xff0c;每次从这个圆圈中删除第 m
个数字#xff08;第一个为当前数字本身#xff0c;第二个为当前数字的下一个数字… 题目解决代码及点评/*
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的值:;cinn;cout请输入m的值:;cinm;// 建立 0~n1的链表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下移一位从删除的下一位开始重新数}// 最后打印剩下的valuecoutpHead-nValueendl;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