如何确定整数表达式的结果是否为整数
How to decide whether the result of an integer expression is an integer
我有一个类似于(30 - n(n - 1)) / 2n
的n
表达式。我想搜索可能的n,只有当结果是整数时,这才是我的答案。有没有办法决定这个表达式的结果是否是整数。
我能想到的唯一方法是(在伪代码中):
for float n <- 1 to 100
do float result = expression(n);
int part = (int) result;
if ( result - part < EPS )
then good to go
您可以使用%
来计算余数。
int denom = 2 * n;
int numer = 30 - n * (n - 1);
if (denom) {
if (numer % denom == 0) {
then good to go
}
} else {
/*...denominator is 0! */
}
if (30 - n(n - 1)) mod 2n equals to zero
如果modf
返回0.0
,则调用它的浮点数on是一个整数。这是测试是否浮点数是一个整数;它适用于所有浮点值,甚至那些会溢出int
的值。
相关文章:
- 为什么这个程序的结果是3 "born"?和 4 死
- C++字符串大小减去整数不是预期值,为什么?
- 分配给浮点数的积分文字除法 - 为什么结果是错误的?
- C++初始化的结果是什么?
- 我的输出结果是 0 英寸C++.可能是什么问题
- 在C++中使用 fread() 来解释这个结果是什么?
- 为什么双算的结果是错误的?
- 为什么一个简单的C++程序会有错误的结果?是 #define 引起的吗?
- 在运行libtorch的模型时获得的结果是不正确的,该模型经过训练并从Pytorch出口
- 是迭代器增量结果是新的迭代器
- 如何使用字符串和整数获取汽车类的整数结果
- 默认情况下,决定整数类型是唱歌或无符号的类型
- 结果是不同的;C++ 中的 recv(sock,buf,sizeof(buf),0) 和 strlen(buf)
- 非常量表达式的左值到右值转换的结果是常数吗?
- 将Execl命令的结果(是目录列表)输送到父进程
- 如果我将未签名的int添加到负int且算术结果是正面的,会发生什么
- decltype( (A{}.int_member) 的正确结果是什么)
- 为什么Turbo C Wraparound每次签名的整数溢出,尽管签名的整数溢出是不确定的
- 这个constexpr整数不是空指针常量吗
- 整数和浮点数之间的加法…结果是0