• 2:约瑟夫问题


    总时间限制: 
    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>
    typedef struct LNode
    {
    	int data;
    	struct LNode *next;
    }LNode;
    LNode* CreateLinkList(int n)
    {
    	LNode* L = NULL;
    	LNode* p = NULL;
    	LNode* q = NULL;
    	int i;
    	L = (LNode *)malloc(sizeof(LNode));
    	L->next = NULL;
    	p = L->next;
    	q = L;
    	for (i = 1; i <= n; i++)
    	{
    		p = (LNode *)malloc(sizeof(LNode));	
    		p->next = NULL;	
    		p->data = i;	
    		q->next = p;		
    		q = q->next;
    	}
    	q->next = L->next;	
    	return L;
    }
    
    LNode * ysf(LNode *L, int m, int n)
    {	
    	LNode* p = NULL;
    	LNode* q = NULL;	
    	int i;	
    	p = q = L->next;
    	if (1 != m)
    	{
    
    		while (p != p->next)
    		{
    			for (i = 1; i != m; i++)
    			{
    				if (2 == m)
    				{
    					q = q->next;
    				}
    				else
    				{
    					p = q;
    					q = q->next;
    					
    				}
    
    			}
    			p->next = q->next;
    			free(q);
    			p = p->next;
    			q = p;
    		}
    	}
    	else
    	{
    		while ((--n)>0)
    		{
    			p = p->next;
    			free(q);
    			q = p;
    		}
    		L->next = p;
    	}
    	return p;
    }
    
    int main(void)
    {	
    	LNode* L = NULL;
    	LNode* p = NULL;
    	int m, n;	
    	scanf("%d%d", &n, &m);		
    	L = CreateLinkList(n);
    	p = ysf(L, m, n);
    	printf("%d", p->data);
    	return 0;
    }



    转载本Blog文章请注明出处,否则,本作者保留追究其法律责任的权利。 本人转载别人或者copy别人的博客内容的部分,会尽量附上原文出处,仅供学习交流之用,如有侵权,联系立删。
  • 相关阅读:
    Docker构建Centos7容器
    Docker命令大全
    win10常用开发配置
    git小结
    JSP页面The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误处理
    CentOS 设置mysql的远程访问
    CentOS安装MySQL
    Kali对wifi的破解记录
    MyEclipse对Maven的安装
    关于sqlmap的使用
  • 原文地址:https://www.cnblogs.com/drfxiaoliuzi/p/3864709.html
Copyright © 2020-2023  润新知