/*约瑟夫问题吧,,,水题*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int N, k, m, i, time, j, mem[60],x;
while( scanf( "%d%d%d", &N, &k, &m ) && N && k && m )
{
x = N;
memset( mem, 0, sizeof(mem) );
i = 0;
j = N+1;
while( x )
{
time = k;
while( time )
{
i++;
if( i > N )
i %= N;
if( !mem[i] )
{
time--;
}
}
time = m;
while( time )
{
j--;
if( j < 1 )
j += N;
if( !mem[j] )
{
time--;
}
}
if( i == j )
{
printf( "%3d", j );
mem[i] = 1;
x--;
}
if( i != j )
{
printf( "%3d%3d", i, j );
mem[i] = mem[j] = 1;
x -= 2;
}
if( x != 0 )
printf( "," );
else
printf( "\n" );
}
}
return 0;
}
UVA 133
最新推荐文章于 2019-02-17 20:46:00 发布