题目标题:
围圈报数(谌海军)
题目描述:
有n(n<=100)围成一圈,顺序排号(从1排到n)。从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子,问最后留下的是原来第几号的那位?
输入描述:
输入为两个正整数,第一个<=100,第二个<=9;
输出描述:
输出为一个正整数;
样式输入:
100 3
样式输出:
91
编写代码:
1 #include <stdio.h> 2 int main() 3 { 4 int i, n, m, k=0, cnt = 0, a[100] = {0}; 5 scanf("%d%d,", &n, &m); 6 for(i = 0; i < n; ++i) 7 {a[i] = i+1;} 8 while(cnt < n) 9 { 10 for(i = 0; i < n; ++i) 11 if(a[i]!=0) 12 { 13 k++; 14 if(k==m) {a[i]=0; k=0; cnt++;} 15 } 16 if(cnt==n-1) break; 17 else i=0; 18 } 19 for(i = n-1; i >= 0; --i) 20 if(a[i] != 0) printf("%d", a[i]); 21 return 0; 22 }