当前位置: 首页 > 面试题库 >

快速的负数模

皇甫喜
2023-03-14
问题内容

负数的模如何快速工作?当我做(-1%3)时,它给出-1,但余数为2。


问题答案:

Swift 余数运算符 %计算整数除法的余数:

a % b = a - (a/b) * b

哪里/是截断整数除法。就你而言

(-1) % 3 = (-1) - ((-1)/3) * 3 = (-1) - 0 * 3 = -1

因此,余数始终与 股息 相同(除非余数为零)。

这与C99标准中所要求的定义相同,例如参见 [ANSI C或ISOC是否指定了-5%10?。另请参阅
Wikipedia:Modulo操作,以概述如何使用不同的编程语言来处理它。

可以在Swift中定义一个“真”模量函数,如下所示:

func mod(_ a: Int, _ n: Int) -> Int {
    precondition(n > 0, "modulus must be positive")
    let r = a % n
    return r >= 0 ? r : r + n
}

print(mod(-1, 3)) // 2


 类似资料:
  • 问题内容: 对于我正在开发的iOS应用,我需要按降序获取消息,即最新消息排在第一位,然后是第二最新消息,依此类推。 从其他SO答案和研究来看,看来我的情况最好的方法是创建一个否定的时间戳,然后将其保留到数据库中作为消息的额外属性。 然后,我将使用来获取中的消息,然后使用childAdded观察器来处理在进行初始调用后发送的消息。 在firebase 文档中,它说我可以从此代码段 firebase.

  • 现在,我在上实现行计数,如下所示 如果数据达到百万,时间计算是很大的。我想要实时计算,但我不想使用Mapreduce 如何快速计算行数。

  • [简短的回答:糟糕的基准测试方法。你会认为我现在已经明白了。] 该问题被提出为“快速计算x^y的方法,其中x和y是正整数”。典型的“快速”算法如下所示: 我想知道这比调用math.pow()或者使用简单的方法比如将x乘以y要快多少,如下所示: 使用随机数和试验的参数确实会改变输出特性,但试验之间的比率总是与所示的一致。

  • 问题内容: 试图了解如何比较数组。 苹果表示,阵列拷贝背后存在优化。看起来有时(并非总是)结构实际上是否被复制。 那就是 1)==遍历所有数组以执行基于元素的比较吗?(看起来像)->那么在非常大的阵列上的性能/内存使用情况如何? 2)我们确定如果所有元素都相等,==会返回true吗?我对Java字符串的==记忆犹新 3)有没有一种方法可以检查myArray1和myArray2在技术上是否使用相同的

  • 我正在寻找一个快速的算法: 我有一个大小为n的int数组,目标是在数组中找到所有模式, 例如,我知道有一个大小为3的int数组是,那么只有一种可能性:12=3(考虑12=21) 我正在考虑实现对和Hashmap来使算法快速。(我现在得到的最快的仍然是 请分享你对这个问题的看法,谢谢

  • [简短回答:糟糕的基准测试方法。你可能认为我现在已经明白了。] 问题呈现为“找到一种快速计算x^y的方法,其中x,y是正整数”。一个典型的“快速”算法看起来是这样的: 我想看看这比调用math.pow()或使用简单的方法(如将x乘以y倍)快多少,如下所示: 编辑:好吧,有人告诉我(正确的)我的基准测试代码没有消耗结果,这完全抛开了一切。一旦我开始使用结果,我仍然看到幼稚的方法比“快速”方法快25%