华师一附中OI组
标题:
P1996 约瑟夫问题
[打印本页]
作者:
universehyf
时间:
2018-9-14 15:53
标题:
P1996 约瑟夫问题
题目背景 约瑟夫是一个无聊的人!!!
题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入输出格式
输入格式:n m
输出格式:出圈的编号
输入输出样例
输入样例#1:10 3
输出样例#1:3 6 9 2 7 1 8 5 10 4
说明m,n≤100
作者:
universehyf
时间:
2018-9-14 15:54
链表
#include<bits/stdc++.h>
using namespace std;
struct point
{
int data;
point *next;
};
int n,m;
int main()
{
cin>>n>>m;
if(n==0) return 0;
point *p,*q,*h;
q=h=new point;
for(int i=1;i<=n;i++)
{
p=new point;
p->data=i;
q->next=p;
q=p;
}
p->next=h->next;
p=h;
while(n>=1)
{
for(int i=1;i<m;i++)
p=p->next;
cout<<p->next->data<<" ";
p->next=p->next->next;
n--;
}
return 0;
}
复制代码
作者:
admin
时间:
2018-9-15 23:05
楼上大神 好厉害,会用链表!指针呢
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2