递归约瑟夫一点理解
2018-01-15 17:35
260 查看
int Joseph_recursive(int sum, int value, int n) { if (n == 1) { return (value - 1) % sum; } else { return (Joseph_recursive(sum - 1, value, n - 1) + value) % sum; } }
第一步,限定递归的范围,就是当递归次数到达最后一次的时候,即 n == 1 的时候,此时下标为死亡间隔 - 1得到的下标膜上当前的人数。
第二步,确定每一步递归的算法,就是通过上一轮的下标求出当前环的下标并传递给下一个环,即上一个环的下标加上死亡间隔再膜上当前环的人数。
一句话总结,通过上一个环的下标值传递给当前环再传递给下个环,第一个环的下标用死亡间隔取下标再膜上一个环的总人数来取得。
相关文章推荐
- 约瑟夫环问题递归解法的一点理解
- 递归的一点理解和举例
- 摘要:我们经常会用到递归函数,但是如果递归深度太大时,往往导致栈溢出。而递归深度往往不太容易把握,所以比较安全一点的做法就是:用循环代替递归。文章最后的原文里面讲了如何用10步实现这个过程,相当精彩。本文翻译了这篇文章,并加了自己的一点注释和理解。
- 对递归的一点理解
- 对功率谱的一点理解
- 一段代码让你理解二叉树的递归奥秘
- 我对autocommit以及select语句是否需要加事务的一点理解
- Qt4.7中,线程,信号,事件的一点理解
- 关于版本升级的一点理解(VersionUpdate)
- 关于spring mvc的一点自己的理解
- Android:对Service的一点理解2
- 手机中文码制问题的一点理解 (zt)
- 关于C++指向指针的指针的一点测试与理解
- 关于SaaS的一点理解
- 归并排序的递归与非递归实现理解(Java)
- Session的一点理解
- 自己关于Intent的一点大致的理解
- 关于C#里面socket编程的一点理解
- 对骨骼动画的一点理解
- 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践