作者:小卢
专栏:《Leetcode》
喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》
目录
面试题 16.05. 阶乘尾数
题目:
设计一个算法,算出 n 阶乘有多少个尾随零
示例:
思路:
注意:题目要求要时间复杂度要为logN,因此我们不能用循环将一个个数相乘这样时间复杂度为O(n),N的时间复杂度要比logN大,因此不能这样算。
题目说要算n!的尾0有几个就相当于说n!可以被10除几次,也就相当于可以被5除于几次,但有25和125这种特殊情况要注意。
代码:
int trailingZeroes(int n){ int res = 0; while (n) { n /= 5; res += n; } return res; }
HJ7 取近似值
题目描述:
描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例:
代码:
#include <stdio.h> int main() { double a; scanf("%lf",&a); double b=(int)a+0.5; if(a<b) printf("%d",(int)a); else printf("%d",(int)a+1); return 0; }