floor of 2.3 is 2.0
floor of 3.8 is 3.0
floor of -2.3 is -3.0
floor of -3.8 is -4.0
floor(double n);
rint (2.3) = 2.0
rint (3.8) = 4.0
rint (-2.3) = -2.0
rint (-3.8) = -4.0
rint(double n);
floor与rint的区别如上。
解题思路:
1.
class Solution {
public:
bool isPowerOfThree(int n) {
if (n<=0) {
return false;
}else{
int max=pow(3, floor(log(INT_MAX)/log(3)+1e-10));
return max%n==0;
}
}
};
2.
class Solution {
public:
bool isPowerOfThree(int n) {
if(n<=0) return false;
double result=log(n)/log(3);
return abs(result-rint(result))<1e-10;
}
};