a***e 发帖数: 413 | 1 为啥下面这个出错,用pow(5,k)就可以呢?多谢!
class Solution {
public:
int trailingZeroes(int n) {
int c=0;
int f=5;
while(n/f>0)
{
c+=n/f;
f*=5;
}
return c;
}
};
Input:1808548329Output:452137080Expected:452137076
Correct one
class Solution {
public:
int trailingZeroes(int n) {
int c=0;
int f=5;
int k=1;
while(n/f>0)
{
c+=n/f;
k++;
f=pow(5,k);
}
return c;
}
}; | s****a 发帖数: 794 | | a***e 发帖数: 413 | | r****7 发帖数: 2282 | 4 你这俩逻辑上没有任何区别
前边的overflow了
【在 a***e 的大作中提到】 : 为啥下面这个出错,用pow(5,k)就可以呢?多谢! : class Solution { : public: : int trailingZeroes(int n) { : int c=0; : int f=5; : : while(n/f>0) : { : c+=n/f;
| c******e 发帖数: 558 | 5 Because pow returns double. Changing your f variable from int to double
gives same result
★ 发自iPhone App: ChineseWeb 1.0.2
【在 a***e 的大作中提到】 : 为啥下面这个出错,用pow(5,k)就可以呢?多谢! : class Solution { : public: : int trailingZeroes(int n) { : int c=0; : int f=5; : : while(n/f>0) : { : c+=n/f;
|
|