约瑟夫问题非常有趣,问题是:假设n个人,编号为1到n,排成一个圈,顺时针从1开始数字m,数到m的人杀了,剩下的人继续游戏.活到最后的一个人是胜利者.一般来说需要编程求解最后一个人的编号.
#include <stdio.h >
main()
{
int n, m,i, s=0;
scanf("%d%d ",&n,&m);
for(i=2;i<=n;i++)s=(s+m)%i;
printf("The winner is %d\n ", s+1);
}
这里提供一位大神的博客链接:http://www.cppblog.com/AClayton/archive/2007/11/06/35964.html