您的位置:首页 > 其它

对任意输入的正整数N,编写C程序求N!的尾部连续0的个数

2009-10-17 21:32 232 查看
对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。
(不用考虑数值超出计算机整数界限的问题)

int NumZero (int n){
int tmp;
int res = 0;
while (n> 4){ // 4以下就不管了,没有0
tmp = n--;
while(tmp % 5 == 0){ // 这里是本算法的精髓
++res;
tmp /= 5;
}
}
return res;
}

///////////////////////////////////////
int NumZero (int n){
int res = 0;
for(;n>0;n/=5) res += n/5;
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐