zoukankan      html  css  js  c++  java
  • 约瑟夫环问题

    描述:

    约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

    输入8 1 3 (n=8 k=1 m=3 )

    输出7 (剩下的那个)

    样例输入

    8 1 3

    样例输出

    7
    #include<cstdio>
    using namespace std;
    struct Node
    {
        int date;
        Node*next;
    };
    int main()
    {
    
        int n,star,out;
        scanf("%d%d%d",&n,&star,&out);
        Node *head,*s,*p,*q;
        s=new Node;
        s->date=1;
        head=s;
        q=s;///保存下来头结点的位置
        for(int i=2;i<=n;i++)
        {
            p=s;
            s=new Node;
            s->date=i;
            p->next=s;
        }
        s->next=head;///成环
        for(int i=1;i<star;i++)
        {
            q=q->next;
        }
        while(q->next!=q)
        {
            for(int i=1;i<out-1;i++)
            {
                q=q->next;
            }
            p=q->next;
            q->next=p->next;
            delete(p);
            q=q->next;///注意这个地方,上面out-1找出的是将要删去的前一个,删除后,从第一个元素开始,第一个元素应为q->next
        }
        printf("%d
    ",q->date);
        return 0;
    }
  • 相关阅读:
    玩转Web之servlet(二)---servlet常见错误
    c++日历v1.12版
    c++学籍管理系统
    一个菜鸟程序员的反思
    HTML5_拖放
    HTML5_智能表单
    CSS处理溢出
    CSS 中浮动的使用
    CSS 中定位的使用
    CSS 中区块的使用_宽高属性
  • 原文地址:https://www.cnblogs.com/dean-SunPeishuai/p/10542292.html
Copyright © 2011-2022 走看看