1*2*3*4*......*1991一直乘,结果的末尾有几个0?末尾第一个不为0的数是几?

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:43:41
请注明详细的解题方法,谢谢!

多少个零,
没增加10,就多一个零,所以共有1991/10=199个
再加上100和1000,一共是202个零
另外每一个10的循环,有一个零,所以共有202+199=401个零

最后一个不是零的数,
1*2*3*4*5*6*7*8*9最后一位数是8
也就是8^199*1991的最后一位,可见就是2^597的最后一位
2^1=2 2^2=4 2^3=8 2^4=16 2^5=32
可见最后一位,是一个2,4,8,6的循环
2^597最后一位和2^(597-596)一样,2^1
所以最后一个不是零的数是2

只有2*5才能出现0,还有就是10的n次方和10*n

每10个数一个5共199个
10*100*1000=6个
10n=199个
10n=10^n重复3个
所以199+6+199-3=401个

找出其中所有2和5的因数的个数,
因为2因数的个数远多于5因数的个数,所以只要求出5的因数个数,即可.下面是这类问题的正宗算法
[1991/5]+[1991/25]+[1991/125]+[1991/625]=398+79+15+3=495
所以共有495个0

先把1到10乘起来,其最后不为0的末位数是8,因为每10个的结果都一样,共有199组,而8的幂末位为8,4,2,6,求出199除4的余数为3,即,当从1乘到1990时,其末位不为0的数为8,4,2,6,的第三个是2,2*1991的末位也是2,所以最后结果是2,

下面是1到1991的积,我编程算的,肯定正确
659491172562914890916239183121232294018200499078321119031614906811964418580035603005670329813690150556212114485306864431057265659505069307214827436462318323524357058685809820413215846685243458770352419991812231328