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

时间:2013-10-05 21:52:14

标签: 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,这样我就可以更容易地手动计算值。

1 个答案:

答案 0 :(得分:0)

如果你有“如果x + y是奇数然后a(x,y)否则b(x,y)”,你可以使用模数运算符将其转换为公式,如下所示:

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

一个括号将为零,另一个括号将取决于你所处的情况。我无法想象一个有用的应用程序,但是,特别是在C中。在像R这样的矢量化语言中,可能会有一些动机对于这种代码。