描述
有n只猴子(编号从1到n),按顺时针方向围成一圈选大王。
规则是从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样重复下去,直到圈内只剩下一只猴子时,这只猴子就是大王。
格式
输入格式
输出格式
输出一个数据,大王的编号
样例
输入样例
输出样例
3
限制
时间限制:1000 ms
内存限制:65535 KB
代码:
#include<stdio.h>#include<stdlib.h>typedef struct Link{int n;struct Link *next;}link;int main(){int n,m,i;link *p,*q,*l;scanf("%d %d",&n,&m);l=(link*)malloc(sizeof(link));q=l;l->n=1;l->next=NULL;for(i=1;i<n;i++){p=(link*)malloc(sizeof(link));q->next=p;p->n=i+1;p->next=NULL;q=p;}q->next=l;q=p;while(n!=1){for(i=0;i<m-1;i++){q=q->next;}p=q->next;q->next=p->next;free(p);n--;}printf("%d",q->n);return 0;}
