c - 我将如何在这里应用余数/模运算符?

标签 c math modulus

这不是一个直接的编程问题,因为它与特定代码无关,但这确实涉及余数/模运算符。

我有一个用于偶数输入值的公式和一个用于奇数输入值的不同公式,但在我的程序中,我需要以某种方式将这两个公式结合起来,以便得到一个适用于偶数和奇数输入的公式。

****(我有两个整数值,x和y,当我说偶数输入值时,我的意思是当您将x和y相加时,该数字是偶数;对于奇数输入也是如此)* *

偶数的公式:1 + sqrt(((x - 10)^2) + ((y - 10)^2))

奇数的公式:1 + (((abs(x - 10)) + (abs(y - 10)))/(2))

我确实注意到这两个公式非常相似,我向我的教授询问了这个问题,他确实暗示使用余数/模运算符。

一开始,我想过将两个公式都除以2,然后将它们相加,这样其中一个值为0,因此,只使用其中一个公式。但是当我插入值时,我意识到偶数输入的答案并不总是偶数。所以现在我不确定如何解决这个问题。

非常感谢任何形式的帮助。

以下是一些值:

Table of Values

注意:y 值不限于 10,我只是使用 10,以便我可以更轻松地手动计算值。

最佳答案

如果您有“if x + y is odd then a(x, y) else b(x, y)”,您可以使用模运算符将其转换为公式,如下所示:

((x + y)%2) * a(x, y) + (1 - (x + y)%2) * b(x, y)

一个括号为零,另一个括号为零,具体取决于您所处的情况。不过,我无法想象对此有什么有用的应用程序,尤其是在 C 中。在像 R 这样的矢量化语言中,可能有一些动机对于这种代码。

关于c - 我将如何在这里应用余数/模运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203115/

相关文章:

c# - 为什么模运算符 (%) 结果在 C# 中隐式转换到左侧而不是右侧?

math - 为什么编程竞赛想要以大素数为模的答案?

c - 当 getaddrinfo() 返回非零值时,是否分配了 struct addrinfo **res?

c - 在 Linux 中使用 C 中的几种 Ethtypes 接收以太网数据包

c - 将int32存储在int8指针中

android - 在 android 中计算给定方位角、俯仰角和横滚角的相对方向?

algorithm - 如何在订单行上按比例分配折扣?

javascript - Leaflet 反向 wrapLatLng 操作

c - 三重指针警告

python - 将数分成随机数的随机元素?