本帖最后由 迷雾少年 于 2016-8-21 16:16 编辑
LZ你看看 ,应该没错了#include<iostream>
using namespace std;
struct node
{
int number;
node* next;
};
int main()
{
int n,m,i;
while(1)
{
cin>>n;
cin>>m;
if(n==0&&m==0)break;
node* first=new node;
first->number=1;
first->next=NULL;
node* s=first;
node *end = NULL;//指向末端
for(i=2;i<=n;i++) //建立链表
{
node* temp=new node;
temp->number=i;
temp->next=NULL;
s->next=temp;
s=temp;
}
s->next=first; //生成循环链表
end = s;
node* run=end;
while(1)
{
if(run->next==run)
{
cout<<run->number<<endl;
break;
}
else
{
for(i=1;i<m;i++)
{
run=run->next;
}
/*
node* b=run->next;
run->next=b->next;
run=run->next;
*/
node* b = run->next; //Delete
run->next = run->next->next;
delete(b);
}
}
}
return 0;
}
|