首页 > 其他 > 详细

面试题62. 圆圈中最后剩下的数字

时间:2020-05-09 21:19:44      阅读:46      评论:0      收藏:0      [点我收藏+]

题目:

技术分享图片

 

 

 

解答:

 技术分享图片

 技术分享图片

 

 1 class Solution {
 2     int f(int n, int m) 
 3     {
 4         if (n == 1)
 5         {
 6             return 0;
 7         }
 8         int x = f(n - 1, m);
 9         return (m + x) % n;
10     }
11 public:
12     int lastRemaining(int n, int m) 
13     {
14         return f(n, m);
15     }
16 
17 };

 

方法二:数学+迭代

class Solution {
public:
    int lastRemaining(int n, int m) {
        int f = 0;
        for (int i = 2; i != n + 1; ++i)
            f = (m + f) % i;
        return f;
    }
};

 

面试题62. 圆圈中最后剩下的数字

原文:https://www.cnblogs.com/ocpc/p/12859830.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!