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

zou*_*yjs 3 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
Run Code Online (Sandbox Code Playgroud)

jxh*_*jxh 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! */
}
Run Code Online (Sandbox Code Playgroud)