题目:n个人围成圈,从i个人开始从1到k报数,报k的人出去,依次类推,求出来的顺序;
分析思路:明天再写
代码如下:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
int main()
{
int *people;
int n;
int* xulie;
printf("几个人参加游戏?\n");
scanf_s("%d",&n);
people = (int*)malloc(sizeof(int)*n);
//memset(people, 0, sizeof(people));
for (int i = 0; i < n; i++)
{
people[i] = i+1;
}
printf("由第几个人开始?每次到第几个结束?\n");
int i, k;
scanf_s("%d %d",&i,&k);
int w = 0;
for (int m = 1; m <= k; m++,i++)
{
if (i == 7)
i = 1;
if (people[i-1] == 0)
{
m = w;
}
//printf("m=%d ",m);
if (m == k)
{
if (people[i - 1] != 0)
{
printf("%d ", people[i-1]);
people[i - 1] = 0;
n--;
//printf("n=%d ",n);
m = 0;
}
}
w = m;
if (n == 0)
break;
}
return 0;
}