1.数组
2.链表
3.数学方法求最后一个人
4.数学方法求第 k 个人
1.数组
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5 {
6 int next[1000],n,s,i,j,cur=1;
7 scanf("%d%d",&n,&s);
8 if (s==1)
9 {
10 for (i=1;i<=n;i++)
11 printf("%d ",i);
12 return 0;
13 }
14 for (i=1;i<n;i++)
15 next[i]=i+1;
16 next[n]=1;
17 for (i=1;i<=n;i++)
18 {
19 for (j=1;j<s-1;j++)
20 cur=next[cur];
21 printf("%d ",next[cur]);
22 next[cur]=next[next[cur]];
23 cur=next[cur];
24 }
25 return 0;
26 }
2.链表
1 ·#include <stdio.h>
2 #include <stdlib.h>
3 #include <malloc.h>
评论0
最新资源