一,题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。

二,思路:创建一个循环链表,每次走m步删除一个节点,最后剩下一个 

三,源码:

#include <iostream> #include "malloc.h" using namespace std; struct node { int data; node *next; }; node *createList(int a[],int n) { node *head; node *p,*q; head=(node *)malloc(sizeof(node)); head->data=0; head->next=NULL; for(int i=0;i<n;i++) { p=(node *)malloc(sizeof(node)); p->data=a[i]; p->next=NULL; p->next=head->next; head->next=p; } q=head; while(q->next!=NULL) q=q->next; q->next=head; return head; } void display(node *head) { node *p; p=head; cout<<p->data<<endl; while(p->next!=head) { p=p->next; cout<<p->data<<endl; } } void deleteNode(node *head,int m) { node *p,*q; p=head; while(p->next!=head)//p为head前一个节点 p=p->next; while(p->next!=p) { q=p->next; for(int i=1;i<m;i++)//走几步 { p=q; q=q->next; } p->next=q->next;//删除节点 cout<<"delete node is:"<<q->data<<endl; } cout<<"last node is:"<<p->data<<endl; } int main() { int a[10]={1,2,3,4,5,6,7,8,9}; node *head; head=createList(a,9); display(head); //cout<<head->data; deleteNode(head,2); return 0; }

转载于:https://www.cnblogs.com/JPAORM/archive/2012/02/24/2510035.html

【100题】第十八题(约瑟夫循环)相关推荐

  1. 【算法百题之十八】18年网易面试题,小易买水果

    [算法百题之十八]小易买水果     大家好,我是Lampard~~     很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!     今天的问题是:     小易为了向他的 ...

  2. 第五章第三十八题(十进制转换八进制)(Decimal to octal)

    第五章第三十八题(十进制转换八进制)(Decimal to octal) **5.38(十进制转换为八进制)编写程序,提示用户输入一个十进制整数,然后显示对应的八进制值.在这个程序中不要使用Java的 ...

  3. 【JavaScript 逆向】猿人学 web 第十八题:jsvmp,洞察先机

    案例目标 网址:第十八题 jsvmp 洞察先机 - 猿人学 本题目标:抓取 5 页数字,计算加和并提交结果 常规 JavaScript 逆向思路 一般情况下,JavaScript 逆向分为三步: 寻找 ...

  4. 猿人学题库十九题——css加密-雪碧图/数据干扰等——地毯式采坑学习

    猿人学题库十四题--css加密-雪碧图/数据干扰等 1.  首先 进入 浏览器的开发者工具, 打开就是 俩个无线debugg,正常的操作过掉 1.  找到 debugg 对应的行数,右击选择 neve ...

  5. 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑

    猿人学题库十六题--js加密_表情包+sojson6.0 1.  首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...

  6. 拼题A 第八题,河南工程学院<数据结构>

    1:题目来自拼题A第8题.<河南工程学院> 2:由于本题大部分由作者本人完成少部分参照资料;所以得了18分 少了两份 3:物联网专属,卢老师的<数据结构> #include&l ...

  7. 【精选】JAVA算法题(十八)

    一.移除链表中指定的节点 题目: /*** 删除链表中等于给定值 val 的所有节点.** 示例:* 输入: 1->2->6->3->4->5->6, val = ...

  8. codeforces水题100道 第十六题 Codeforces Round #164 (Div. 2) A. Games (brute force)

    题目链接:http://www.codeforces.com/problemset/problem/268/A 题意:足球比赛中如果主场球队的主场球衣和客队的客队球衣颜色一样,那么要求主队穿上他们的可 ...

  9. 《剑指offer》第十八题(在O(1)时间删除链表结点)

    // 面试题18(一):在O(1)时间删除链表结点 // 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该 // 结点. #include <iostream> ...

最新文章

  1. .net 下直接读分区数据,并生成ISO光盘镜像文件,含DEMO
  2. HTML特殊转义字符列表
  3. iphone 常用预编译代码
  4. c++学习笔记之静态成员函数
  5. 打不开开php_(13)10个开源免费的PHP博客CMS
  6. Vue3.js 全局组价案例入门
  7. mysql设计功能设置表_MySQL数据表的设计
  8. Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler
  9. ASP.NET Boilerplate Zero启动方式
  10. 论文翻译:《Improved Neural Relation Detection for Knowledge Base Question Answering》
  11. Flutter 页面滚动吸顶详解(NestedScrollView)
  12. Oracle 忘记/修改密码
  13. 反向代理服务器tengine学习小记
  14. 海康SDK-javademo实现报错问题解决
  15. ssm社区线上超市购物系统毕业设计-附源码211704
  16. Random随机数和for循环,实现猜数游戏和双色球
  17. html 组件化 编辑器,纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表...
  18. 手机APP身份证识别
  19. 阿米洛键盘失灵_机械键盘按键失灵维修,这里有个案例给你一些思路。
  20. php生成海报像素低,TP5.1生成海报

热门文章

  1. Ubuntu12.04中eclipse提示框黑色背景色修改
  2. 摘自缪雪峰的博客的JavaScript个人笔记(3)
  3. CENTOS7 修改 网卡名称为eth0的配置方法
  4. 满屏的指标?删了吧,手把手教你裸 K 交易!
  5. 怎样更改计算机ip用户名,无法修改系统IP地址
  6. 深度解析艾瑞咨询《2017年度中国商业智能行业研究报告》
  7. 企业如何开展数据可视化建设
  8. 浅谈帆软报表的权限授权,以便于二次开发
  9. 用c#算成绩的总和_用c#输入几门课程成绩求总成绩和平均成绩,定义方法实现如果输入的成绩不是整数,则重新输入(方法)...
  10. html可以用坐标画svg图吗,HTML5如何使用SVG的方法示例