Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4820672
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类:

2008-09-04 20:29:22

   对任意输入的正整数N,求N!的尾部连续0的个数,并指出计算复杂度如:18!尾部连续0的个数是3.  (不用考虑数值超出计算机整数界限的问题)
   这题我刚拿到的时候也是想先求阶乘,然后除10判断0个数,弄了半天其实总是出界^_^,换个角度想想如果这样算的话就不是百度,不是算法了.其实2的个数总是多余5的个数的,实际上也就是求5的个数了.代码这么插入貌似清晰些^_^
 

#!/bin/bash

#count Factorial Zero


echo "Please input the number to count:"
read number
if [ $number -le 5 ]
    then
    echo "Sorry,the number you input must be at least 5"

    exit 0

fi
i=5
count=0
while [ $i -le $number ]
do
    j=i
    while (( $j%5==0 ))
    do
    let j/=5

    let count+=1
    done
let i+=1
done
echo "factorial zero is:$count"

阅读(668) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~