/*
45:> 约瑟夫环
*/
//数学解法
int LastLive(size_t total, size_t key)
{
if (total < 1 || key < 1)
return -1;
int last = 0;
for (int i = 2; i <= total; ++i)
last = (last + key) % i;
return last;
}
//void test()
//{
// cout <<"live is:> "<< LastLive(10, 3) << endl;
//}
[剑指offer]约瑟夫环
最新推荐文章于 2022-03-29 11:01:24 发布