1852 - 课后习题10.5
时间限制 : 1 秒
内存限制 : 128 MB
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目输入
初始人数n
题目输出
最后一人的初始编号
输入/输出样例
输入格式
3
输出格式
2
C语言解答
#include<stdio.h> #define M 3 int main() { int n,a[1000],*p,*pp,i,tuichu=0,num=0; p=a,pp=a; scanf("%d",&n); for(i=0;i<n;i++,p++) *p=1; p=pp; while(tuichu!=n-1) { if(*p==1) num++; if(num==M) { *p=0,num=0, tuichu++; } p++; if(p==(pp+n)) p=pp; } p=pp; for(i=0;i<n;i++,p++) { if(*p==1) { printf("%d",p-pp+1);break;} } }