有30個同學圍成一個圈,從一到三報數,報到3的退出圓圈,請問最後剩下的是那個同學?並輸出出圈同學的順序。
int main(void)
{
// 圍圈報數
int a[100] = {0};
int m , n, t = 0;
int i , j, k = 0;
scanf("%d%d", &m, &n);
for ( i = 1; i <= m; i++)
{
a[i-1] = i;
} //每人附上序號
while ( t < m - 1)
{
for ( j = 0; j < m; j++)
{
if ( a[j]!= 0)
{
k++;
if ( k == n)
{
a[j] = 0;
t++;
k = 0;
}
}
}
}
for ( i = 0; i < m; i++)
{
if ( a[i]!= 0)
{
printf("%d\n", a[i]);
}
}
return 0;
}