怎么推迟fingerprint 时期?# EB23 - 劳工卡
r*h
1 楼
由于这个数在正整数中没有对应的数,因此很多时候都要单独处理,不过总觉得把这一
个情况单列出来搞得代码不好看。请问一般来说有什么比较好的处理方法吗?
比如说pow(x),我的代码是这样的, 1<<31的情况单独处理了:
double pow(double x, int n) {
if(n == 0) return 1;
if(x==0 || x==1) return x;
if(n < 0){
if(n == (1<<31)){
double tmp = pow(1/x, 1<<15);
return tmp*tmp;
}
else
return pow(1/x, -n);
}
double tmp = pow(x, n>>1);
if(n&1)
return tmp*tmp*x;
else
return tmp*tmp;
}
个情况单列出来搞得代码不好看。请问一般来说有什么比较好的处理方法吗?
比如说pow(x),我的代码是这样的, 1<<31的情况单独处理了:
double pow(double x, int n) {
if(n == 0) return 1;
if(x==0 || x==1) return x;
if(n < 0){
if(n == (1<<31)){
double tmp = pow(1/x, 1<<15);
return tmp*tmp;
}
else
return pow(1/x, -n);
}
double tmp = pow(x, n>>1);
if(n&1)
return tmp*tmp*x;
else
return tmp*tmp;
}