uva 1394&poj 3517

递推,把问题转化为具有相同问题的子问题,通过子问题最后所剩余的编号,退出此问题所剩余的编号

#include <iostream>
using namespace std;
const int maxn=10000+10;
int f[maxn];
int main()
{
	int n,k,m;
	while(~scanf("%d %d %d",&n,&k,&m))
	{
		if(!n&&!k&&!m) break;
		f[1]=0;
		for(int i=2;i<=(n-1);i++) f[i]=(f[i-1]+k)%i;
		int out=(f[n-1]+m)%n+1;
		printf("%d\n",out);
	}
	return 0;
}


posted @ 2013-03-12 19:51  LJ_COME!!!!!  阅读(123)  评论(0编辑  收藏  举报