zoukankan      html  css  js  c++  java
  • 洛谷 P1996 约瑟夫问题

    题目背景

    约瑟夫是一个无聊的人!!!

    题目描述

    n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.

    输入格式

    n m

    输出格式

    出圈的编号

    输入输出样例

    输入 #1
    10 3
    输出 #1
    3 6 9 2 7 1 8 5 10 4

    # include <cstdio>
    # include <iostream>
    using namespace std;
    struct node
    {
    int data;
    node *next;
    };
    int main()
    { int x,n,m,t=0;
    cin>>m>>n;//if(m==0&&n==0) break;
    node *head,*tail,*listnode;
    head=tail=NULL;//初始链表为空
    for(int i=1;i<=m;i++)
    { listnode=new node;//new为C++动态分配内存的运算符,分配一个结点
    listnode->data=i;//新结点数据域赋值
    listnode->next=head;//新结点指针域赋值

    if(head==NULL) head=tail=listnode;//链表为空,插入第一个结点
    else
    {
    tail->next=listnode;//在链表尾部插入新结点
    tail=listnode;//更新链表尾部指针
    }
    }

    if(head==NULL) return 0;//链表为空,不进行运算,结束程序
    listnode=head;
    while(listnode->next!=listnode)
    {
    for(int i=1;i<=n-2;i++)
    listnode=listnode->next;
    cout<<listnode->next->data<<' ';
    listnode->next=listnode->next->next;
    listnode=listnode->next;
    }

    cout<<listnode->data<<endl;

    return 0;
    }


    链表的模板题,熟悉如何建立链表,删除链表中的元素就可以了
  • 相关阅读:
    fibnacci数列的python实现
    求最大公约数伪代码
    2020-2021-1 20201213信息安全专业导论第五周学习总结
    2020级201213《信息安全专业导论》第五周学习总结
    xor加密的python实现
    第四周学习总结
    BASE64编码
    师生关系
    2020-2021--1 20201205《信息安全专业导论》第2周学习总结
    师生关系
  • 原文地址:https://www.cnblogs.com/xcsj/p/11961694.html
Copyright © 2011-2022 走看看