文章
5
粉丝
87
获赞
16
访问
1.1k
#include<stdio.h>
int main()
{ int a[101];
int n,count=0,shanchu=0;
scanf("%d",&n);
for(int i=0;i<n;i++) /*对a[0]~a[n-1]赋值1~n,代表n个人的序号*/
a[i]=i+1;
for(int i=0;;i=(i+1)%n) /*对数组循环遍历,重点在于i=(i+1)%n,0=<i<=n-1,循环遍历a[0]~a[n-1]*/
{ if(a[i]!=0) count+=1; /*如果元素不为零,代表此人还在场,count+1 */
if(count==3) {a[i]=0;count=0;shanchu+=1;} /*当count=3时,代表数了3个人,把a[i]置0,代表此人出局。
count=0,从下一个人开始重新数3人。shanchu++,出局人数+1。 */
if(shanchu==n-1) break; /*当shanchu=n-1,代表只剩一人了,退出遍历*/
}
int b=0;
for(int i=0;i<n;i++) /* 此时数组只有一个元素不为0,通过求数组和即可知元素大小,即人的序号 */
b+=a[i];
printf("%d",b );
}
登录后发布评论
暂无评论,来抢沙发