I am trying to implement a function which tests if a number is an integer:
#include <iostream>
#include <typeinfo>
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);
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;
}
So the idea is that if a number is an integer, it does not matter if it is negative or positive. If we decrease or increase it by one, we must get zero, but the problem is, that how can we create upper and lower bounds for increasing and decreasing?