当前位置:文档之家› 围圈报数C语言

围圈报数C语言

题目标题:
围圈报数



题目描述:
有n(n<=100)围成一圈,顺序排号(从1排到n)。
从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子,
问最后留下的是原来第几号的那位?
解题思路:
1、定义一个长度为100数组a,初始化为0;
2、接收键盘输入值n,m,数组a的前n-1个元素赋值为1~n;
3、建立两层嵌套循环,外循环至退出人数为n-1为止,
内循环中从0循环至n,将a数组中非0的数据逢m置零,同时记录退出人数;
4、循环全部结束后输出最后留下的一个a数组的非零元素的值。



输入描述:
输入为两个正整数,第一个<=100,第二个<=9;



输出描述描述:
输出为一个正整数;



样式输入:
100 3



样式输出:
91

#include
#define N 100
void main()
{
int a[N]={0};
int n,m;
int i;
int k=0,t=0,s;
scanf("%d %d",&n,&m);
s=n;
for(i=0;ia[i]=i+1;
while(n>1)
{
if(a[k%s]!=0)
t++;
if(t==m)
{
n--;
a[k%s]=0;
t=0;
}
k++;
}
for(i=0;i{
if(a[i]!=0)
printf("%d",a[i]);
}
}




相关主题
文本预览
相关文档 最新文档