描述

有n只猴子(编号从1到n),按顺时针方向围成一圈选大王。

规则是从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样重复下去,直到圈内只剩下一只猴子时,这只猴子就是大王。


格式

输入格式

输入只有一行,两个数据,分别是n和m

输出格式

输出一个数据,大王的编号


样例

输入样例

10 5

输出样例

3


限制

时间限制:1000 ms
内存限制:65535 KB


代码:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct Link
  4. {
  5. int n;
  6. struct Link *next;
  7. }link;
  8. int main()
  9. {
  10. int n,m,i;
  11. link *p,*q,*l;
  12. scanf("%d %d",&n,&m);
  13. l=(link*)malloc(sizeof(link));
  14. q=l;
  15. l->n=1;
  16. l->next=NULL;
  17. for(i=1;i<n;i++)
  18. {
  19. p=(link*)malloc(sizeof(link));
  20. q->next=p;
  21. p->n=i+1;
  22. p->next=NULL;
  23. q=p;
  24. }
  25. q->next=l;
  26. q=p;
  27. while(n!=1)
  28. {
  29. for(i=0;i<m-1;i++)
  30. {
  31. q=q->next;
  32. }
  33. p=q->next;
  34. q->next=p->next;
  35. free(p);
  36. n--;
  37. }
  38. printf("%d",q->n);
  39. return 0;
  40. }