17世纪法国数学家加斯帕在《数学的游戏问题》中讲的一个故事:n个教徒和n个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了个办法:2n个人围成一个圆圈,从第一个人开始依次循环报数,每数到第九个人就将他扔入大海,如此循环直到仅剩n个人为止 。问怎样的排法,才能使每次投入大海的都是非教徒。
【输入】 输入文件由一行构成,就是n的值。
【输出】 输出文件中是一行字符串,字符串由n个‘@’字符(代表教徒)和n个‘+’ 字符(代表非教徒)排列构成。该排列使得按照前面的约定每次投入大海的都是非教徒。
【输入范例】 15
【输出范例】 @@@@+++++@@+@@@+@++@@+++@++@@+

构建循环链表,将2n先定义为教徒赋值为@,通过指针操作链表结点寻找第九个人,将其赋值为+,若遇到已赋值为+的则跳过将其后续赋值为+,自写代码若有错误欢迎指出

代码
#include<stdio.h>/*循环链表   数组*/
#include<stdlib.h>
typedef struct dnote
{char data;struct dnote *next;//struct dnote *rear;
}node,*linklist;
linklist createlink(linklist L,int m,int n)/*尾插建表*/
{node *s,*r;
int i;
L=(linklist)malloc(sizeof(node));
r=L;for(i=0;i<m;i++){s=(linklist)malloc(sizeof(node));s->data='@';r->next=s;r=s;}s->next=L->next;//链尾指向链头r=L->next;//找到第九个人
while(m!=n){i=1;while(i!=9){if(r->data=='@'){i++;r=r->next;}elser=r->next; }while(r->data=='+'){r=r->next; }//if(r->data=='+')//r->next->data='+';//elser->data='+';m--;}
/*2+@@+  3+++@@@*/r=L->next;//输出for(i=0;i<(2*n);i++)
{printf("%c",r->data);
r=r->next;}return 0;
}
int main()
{linklist L=NULL;int n,m;printf("输入n的值");scanf("%d",&n);m=2*n;createlink(L,m,n);return 0;
}

ACM循环链表实现教徒问题相关推荐

  1. 网内计算:可编程数据平面和技术特定应用综述

    网内计算:可编程数据平面和技术特定应用综述 摘要--与云计算相比,边缘计算提供了更靠近终端设备的处理,降低了用户体验的延迟.最新的In-Network Computing范例采用可编程网络元素在数据达 ...

  2. ACM基础知识及算法

    ACM 算法   难度 数据结构 栈 栈     1 单调栈       队列 一般队列     1 优先队列/单调队列     1 循环队列     2 双端队列     2 链表 一般链表     ...

  3. 前人对ACM学习的一些总结

    freopen("in.txt","r",stdin); 一:知识点  数据结构:  1,单,双链表及循环链表  2,树的表示与存储,二叉树(概念,遍历)二叉树 ...

  4. ACM技术栈(知识栈)

    一.知识点 数据结构: 1.单,双链表及循环链表 2.树的表示与存储,二叉树(概念,遍历)二叉树的应用(二叉排序树,判定树,博弈树,解答树等) 3.文件操作(从文本文件中读入数据并输出到文本文件中) ...

  5. ACM解题的一些技巧和方法

    参加acm也一段时间了,决定重新总结下自己学到的一些东西,这样才会收获得更多. 比赛考验的不仅仅是知识面,思维能力,编码能力,更有团队合作的意识以及心态.平时接触的题目会涵盖各个方面的内容,我们都需要 ...

  6. ACM必学知识点清单

    来源:https://blog.csdn.net/xuanandting/article/details/52160859 训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高 ...

  7. ACM/ICPC竞赛

    备战ACM资料 一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输 ...

  8. 牛人的ACM经验 (转)

     牛人的ACM经验 (转) 一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的           应用(二叉排序树,判定树,博弈树,解答树等) 3 ...

  9. 教徒与非教徒问题——Java

    问题描述 17世纪法国数学家加斯帕在<数学的游戏问题>中讲的一个故事:n个教徒和n个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了个办法:2n个人围成一个圆圈, ...

最新文章

  1. Nginx防盗链详细设置
  2. jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
  3. 如何在一个.c文件里调用另一个.c文件里的变量
  4. 【Linux】一步一步学Linux——clear命令(241)
  5. appium---【Mac】Appium-Doctor提示WARN:“ opencv4nodejs cannot be found”解决方案
  6. LeetCode 286. 墙与门 多源BFS和DFS
  7. mysql sql 备份数据_mysql怎么进行数据库备份和还原,以及自动备份
  8. 诺基亚9.3再曝光:后置1亿像素圆形五摄 价格或超6000元
  9. 音视频编解码:NVIDIA Jetson Linux Multimedia API(总结)
  10. FFmpeg视频编解码库,无法解析的外部符号、找不到inttypes.h文件的问题
  11. 转,jQuery入门[4]-链式代码
  12. 关于SUSE linux
  13. mac电脑循环次数多少算新_在Mac上处理不同事务,这些软件必不可少,个个精品...
  14. 【IoT】产品设计:关于专利申请,这篇文章就够了
  15. TV版应用包名 TV常用apk包名 (当贝市场下载)
  16. 移动硬盘 计算机里不显示盘符,移动硬盘插在电脑上不显示盘符是怎么回事啊?...
  17. swift中检测跳转苹果自带地图、高德地图、百度地图、腾讯地图
  18. 宝塔面板服务器ip地址修改_宝塔,云帮手服务器控制面板,你用的哪一款?
  19. 咸鱼前端—html初识
  20. 滕州一中计算机竞赛,滕州一中3名学生“叶圣陶杯”获佳绩!高三学生蒋雨含获决赛一等奖...

热门文章

  1. 微信电脑端同时登陆多个微信
  2. springmvc SSM Activiti 工作流引擎 流程审批 后台框架 源码 shiro权
  3. 北航计算机学院国家奖学金,Hua Guo
  4. 继电集中联锁是利用计算机,基于继电电路的计算机联锁逻辑模型研究
  5. 443 k8s配置开启nginx_k8s部署nginx集群
  6. 自定义 thinkphp5.0全局异常报错,继承基类\exception解决
  7. 引用 字库编码Unicode相关知识
  8. SKIL/工作流程/SKIL上的分布式训练
  9. atheros 无线驱动接收流程
  10. 梁实秋:时间即生命 【原文欣赏】