数据结构与算法MOOC / 第2周 线性表(Linear Lists)1:约瑟夫问题
来源:互联网 发布:vscode md预览 编辑:程序博客网 时间:2024/05/17 02:34
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。
- 输入
- 输入包含两个整数,第一个是n,第二个是m (0 < m,n <=300)。
- 输出
- 输出包含一行,即最后猴王的编号。
- 样例输入
12 4
- 样例输出
1
要注意头尾相连,就不存在头,尾,创建一开始就要头尾相连
#include<stdio.h>#include<stdlib.h>struct node{int num;struct node *next;};int n,m;struct node *creat(void){struct node *head,*p1,*p2;head=NULL;int i=0;for(i=1;i<=n;i++){p1=(struct node*)malloc(sizeof(struct node));p1->num=i;if(head==NULL)head=p1;elsep2->next=p1;p2=p1;}p1->next=head;return head;}struct node *del(struct node *head){int f=1;struct node *p1,*p2;p1=head;while(p1!=p1->next){if(f==m){p2->next=p1->next;f=1;}else{p2=p1;f++;}p1=p1->next;}return p1;}void print(struct node *head){printf("%d\n",head->num);}int main(){struct node *head;scanf("%d%d",&n,&m);head=creat();head=del(head);print(head);return 0;}
0 0
- 数据结构与算法MOOC / 第2周 线性表(Linear Lists)1:约瑟夫问题
- 数据结构与算法MOOC / 第2周 线性表(Linear Lists) 2:多项式加法
- 数据结构与算法MOOC / 第2周 线性表(Linear Lists3:大整数乘法
- 线性表-约瑟夫问题(数据结构基础 第2周)
- 【数据结构算法】约瑟夫环问题(线性表)
- 线性表13|约瑟夫问题 – 数据结构和算法18
- 数据结构与算法(单循环链表_约瑟夫问题)
- 数据结构与算法(单循环链表_约瑟夫问题)
- 数据结构与算法-约瑟夫问题
- 数据结构与算法:约瑟夫问题
- 数据结构与算法---约瑟夫问题
- 【数据结构】线性表(Linear List)
- 数据结构与算法MOOC习题解题报告(PART 1:第1课-第5课)
- 数据结构与算法学习笔记04(约瑟夫问题)
- 【数据结构与算法】约瑟夫环问题
- 数据结构与算法——约瑟夫问题
- 浅谈数据结构(一) 线性表 Lists
- 数据结构与算法mooc 败方树
- 数据结构第一章第二章个人心得总结
- BS学习概述
- VB.NET机房收费系统总结
- Java中长度为0的数组与null的区别
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 客户端对象模型API范围
- 数据结构与算法MOOC / 第2周 线性表(Linear Lists)1:约瑟夫问题
- [iOS高级] UICollectionView实现瀑布流效果
- JAVA九九乘法口诀
- Sicily 1151 魔板 Another Thought
- poj2349 Arctic Network(最小生成树)
- 20几岁,不要急着长大
- Linux Network Block Device(NBD)安装配置过程
- 查询执行完的JOB的消耗
- 插入排序,折半插入排序,希尔排序的代码