Leafee98:1~n 中有 n/5 个 5 的倍数, 有 n/25 个 25 的倍数, ... , 之所以最后结果是 n/5 + n/25 + n/125 + ... , 而非 n/5 + 2*n/25 + 3*n/125 + ... , 是因为 n/25 的 2 个 5 有 1 个在 n/5 的时候已经计算过了一遍. 如果倒过来计算的话, 假设除以 k 次幂时按照其贡献了 k 个 5, 在计算 k-1 次幂时, 应当用 k-1 乘以是 5^(k-1) 的倍数且不是 5^k 的倍数的数字的个数, 在计算 k-2 次幂时, 应当用 k-2 乘以是 5^(k-2) 的倍数且不是 5^(k-1) 以及 5^k 的倍数的数字的个数(只需要减去 5^(k-1) 的倍数的数字的个数即可, 因为其包含了 5^k 的倍数的数字). k*n/5^k + (k-1)*(n/5^(k-1) - n/5^k) + (k-2)*(n/5^(k-2) - n/5^(k-1)) + ... + 1*(n/5 - n/5^2). 以 n 为 125 为例, 3*125/5^3 + 2*(125/5^2 - 125/5^3) + 1*(125/5^1 - 125/5^2) = 125/5^3 + 125/5^2 + 125/5 = 31
0 点赞 评论 收藏
分享
02PHC:https://blog.nowcoder.net/n/daf8bbea688c4d9baeccfb45c3dbbaee
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
解放西专业贴膜:434 / 652 = 0 (余 434) 652 / 434 = 1(余218) 434 / 218 = 216(余2) 216 / 2 = 108 (余0) 这个216是不是218?
0 点赞 评论 收藏
分享
四糸智乃:
查看图片
查看图片0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: