AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

AcWing 82. Go 题解 圆圈中最后剩下的数字    原题链接    简单

作者: 作者的头像   丶Axe ,  2019-10-15 10:58:16 ,  所有人可见 ,  阅读 722


0


Talk is cheap.

递归法 递归深度大,不推荐。

func lastRemaining(n int, m int) int {
    if n <= 0 || m <= 0 {
        return -1
    }
    if n == 1 {
        return 0
    }
    return (lastRemaining(n - 1, m) + m) % n
}

循环迭代法

func lastRemaining(n int, m int) int {
    if n <= 0 || m <= 0 {
        return -1
    }
    last := 0
    for i := 2; i < n + 1; i++ {
        last = (last + m) % i
    }
    return last
}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息