【发布时间】:2011-10-04 10:30:26
【问题描述】:
我正在尝试实现用户定义的函数来测试数字是否为整数:
#include <iostream>
#include <typeinfo>
using namespace std;
bool integer(float k){
if (k==20000) return false;;
if (k==(-20000)) return false;
if (k==0) return true;
if (k<0) return integer(k+1);
else if(k>0) return integer (k-1);
return false;
}
int main(){
float s=23.34;
float s1=45;
cout<<boolalpha;
cout<<integer(s)<<endl;
cout<<integer(s1)<<endl;
return 0;
}
所以这个想法是,如果一个数字是一个整数,不管它是负数还是正数,如果我们减少或增加一,我们必须得到零,但问题是,我们怎么能为增加和减少创建上限和下限?
【问题讨论】:
-
我什至不...为什么您认为 >20000 和
-
是的,你是对的,我已将其更改为 MAX_INT 和 MIN_INT
-
no @tenfour,我正在阅读关于数论的部分,其中讨论了关于(二次)残差和素数残差的根等主题,这里是某种涉及整数项的算法,如果某事物的平方根是整数,那么它就是根,所以这是主要原因
-
读者:有一个新的very comprehensive Q&A on this topic,明确考虑C++11。