本人大一新生,初次接触编程,记录一下自己的学校oj题解。
C语言-报数:
题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
输入
初始人数n
输出
最后一人的初始编号;
样例输入
3
样例输出
2
对于这种题目,我本人很菜,对于代码的理解还没有规范,做题也很少。用的方法也很普通。希望大哥们指点,交流
#include <stdio.h>
#include<string.h>
int main() {
int a[10000];
int n;
int count=0;
int i=1;
scanf("%d",&n);
int m=n;
for(int k=0;k<n;k++){
a[k]=k+1;
}
while(count!=n-1){
for(int j=0;j<n;j++){
if(a[j]!=0){
if(i==3){
a[j]=0;
i=1;
count++;
}
else{
i++;
}
}
}
}
for(int j=0;j<n;j++){
if(a[j]!=0){
printf("%d",a[j]);
}
}
}