题目链接http://poj.org/problem?id=3750

用链表解决的约瑟夫问题

写的比较麻烦比较长

View Code

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 struct node
 5 {
 6     int num;
 7     char name[200];
 8     struct node*next;
 9 };
10 struct node*creat(int n)
11 {
12     int i;
13     struct node*p,*tail,*head;
14     p=(struct node*)malloc(sizeof(struct node));
15     p->num=1;
16     scanf("%s%*c",&p->name);
17     p->next=NULL;
18     head=p;
19     tail=p;
20     for(i=2;i<=n;i++)
21     {
22         p=(struct node*)malloc(sizeof(struct node));
23         p->num=i;
24         scanf("%s%*c",&p->name);
25         tail->next=p;
26         tail=p;
27         p->next=NULL;
28     }
29     tail->next=head;
30     return head;
31 }
32 int sel(struct node*head,int s,int m,int n)
33 {
34     int num=0,i;
35     int count=0;
36     struct node*p,*q;
37     q=head;
38     while(q->next!=head)
39         q=q->next;
40         for(i=0;i<s-1;i++)
41         {q=q->next;}
42         //printf("被删除的人的序号依次是:");
43         while(count<n-1)
44         {
45             p=q->next;
46             num++;
47             if(num%m==0)
48             {
49                 q->next=p->next;
50                 printf("%s\n",p->name);
51                 free(p);
52                 count++;
53             }
54             else
55             q=p;
56         }
57         printf("%s",q->name);
58 }
59 int main()
60 {
61     int n,m,s;
62     struct node*head;
63     scanf("%d",&n);
64     head=creat(n);
65     scanf("%d,%d",&s,&m);
66    sel(head,s,m,n);
67     return 0;
68 }

转载于:https://www.cnblogs.com/timeship/archive/2012/07/17/2595717.html

POJ 3750 小孩报数问题相关推荐

  1. POJ 3750 小孩报数问题(约瑟夫问题 水题 考验细节、编码能力)

    原题 小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S ...

  2. 约瑟夫环 poj 3750 小孩报数问题 模拟

    Language: Default 小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10071   Accept ...

  3. pku 3750 小孩报数问题 解题报告

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3376   Accepted: 1597 Descriptio ...

  4. POJ3750 小孩报数问题【模拟】

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14909   Accepted: 6647 Descripti ...

  5. Java 小孩报数问题

    小孩报数问题:有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S ...

  6. B - 小孩报数问题

    B - 小孩报数问题 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人 ...

  7. javastudy-43:小孩报数问题

    43:小孩报数问题 描述 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列( ...

  8. ZCMU-1474: 小孩报数问题(C语言)

    1474: 小孩报数问题 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 473  Solved: 213 [Submit][Status][Web B ...

  9. poj3750 小孩报数问题

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8929   Accepted: 4191 Descriptio ...

最新文章

  1. 第七篇:循环神经网络
  2. Java+Selenium3.3.1环境搭建
  3. tensorflow随笔-底层梯度
  4. 人工智能对医疗和健康产业的冲击和革命——体外克隆
  5. php redis命令大全,redis中key相关命令详解
  6. 计算机网络基础:网络分类和拓扑结构知识笔记
  7. 大话存储pdf 百度网盘_学用系列|亲身体验百度网盘内测在线文档,有遗憾也有期待...
  8. 共享计算机脱机访问计算机,让Windows7脱机共享访问更安全 -电脑资料
  9. android x86 oreo,Android-x86 8.1 RC1发布:PC上运行Android Oreo
  10. 祭奠被遗忘的冒泡排序
  11. Implement queue with two stack 用两个堆实现队列
  12. php有序数组合并,使用Python怎么合并两个有序数组
  13. 三菱PLC仿真软件的序列号
  14. IT公司对员工电脑监控一般使用什么软件?
  15. 2015职称计算机考试基础知识,2015年中级职称计算机考试基本知识点.doc
  16. 计算机教案word格式模板,大学授课教案模板Word格式
  17. 今日卢布美元汇率换算
  18. 我的世界java无法连接服务器_java - 无法连接到Minecraft服务器 - SO中文参考 - www.soinside.com...
  19. (二十)通俗易懂理解——汽车功能安全
  20. 什么是 CI/CD?(翻译)

热门文章

  1. JZOJ 5192. 【NOI2017模拟7.2】容器
  2. JZOJ 3597. 【CQOI2014】危桥
  3. opencv镜像_DX200操作要领—PAM与镜像平移变换(三十八)
  4. 取两个数较小值c语言_编程代码:用C语言来实现下雪效果,这个冬天,雪花很美...
  5. floatingactionbutton 更改背景颜色_经验分享!Word轻松换掉证件照背景颜色
  6. 您没有足够的全新为该计算机所有用户安装,很抱歉,无法安装Office(64位),因为您的计算机上已经安装了这些32位Office程序解决办法...
  7. 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?
  8. Celery分布式任务队列的认识和基本操作
  9. word2010页脚页码的总页数修改方法
  10. [SDOI2010]外星千足虫 题解 高斯消元+bitset简介