如何判断整数表达式的结果是否为整数

时间:2013-08-21 08:18:33

标签: c++ c math integer

我的n表达式为(30 - n(n - 1)) / 2n。而且我想搜索可能的n,只有当结果是整数时才是我的答案。有没有办法确定这个表达式的结果是否是整数。

我能想到的唯一方法是(伪代码):

for float n <- 1 to 100
  do float result = expression(n);
     int part = (int) result;
     if ( result - part < EPS )
       then good to go

3 个答案:

答案 0 :(得分:7)

您可以使用%来计算余数。

int denom = 2 * n;
int numer = 30 - n * (n - 1);

if (denom) {
    if (numer % denom == 0) {
        then good to go
    }
} else {
    /*...denominator is 0! */
}

答案 1 :(得分:2)

if (30 - n(n - 1)) mod 2n equals to zero

答案 2 :(得分:1)

如果modf返回0.0,则调用它的浮点数 on是一个整数。这是测试是否的标准方法 浮点数是一个整数;它适用于所有 浮点值,即使是溢出int的那些。