题解(位运算)

题目定义的编号是 base 1 的,而取模运算是 base 0 的,当编号正好是 mod 的整数倍是会出错。这里有一个技巧,我们可以先对编号偏移到 base 0 取模,最后再偏移回来。

fun main(args: Array<String>) {
    repeat(nextInt()) {
        val m = nextInt()
        val x = nextInt()
        println((x - 1) % m + 1)
    }
    done()
}

复杂度分析:

  • 时间复杂度:O(1)
  • 空间复杂度:O(1)