永发信息网

1乘4乘7乘10乘13乘16乘19乘22……乘2014乘2017,,,结果的末尾有多少个零?

答案:4  悬赏:0  手机版
解决时间 2021-03-15 05:55
  • 提问者网友:皆是孤独
  • 2021-03-14 21:50
1乘4乘7乘10乘13乘16乘19乘22……乘2014乘2017,,,结果的末尾有多少个零?
最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-03-14 22:44

#include 
int main()
{int i,j,n1=0,n2=0;
 for(i=1;i<2015;i+=3)
 {for(j=i;j%2==0;j/=2)n1++;    //每个数中含有因子2的累加和为n1
  for(;j%5==0;j/=5)n2++;    //每个数中含有因子5的累加和为n2
 }
 printf("乘积的末尾有%d个0
",n1 return 0;
}

三楼的回答中,实际25会提供2个0。因为前面的4也会贡献因子2。
全部回答
  • 1楼网友:神的生死簿
  • 2021-03-15 01:18
好的LZ
这是一个找规律题
重点是:
1所有末尾是0的数,都会提供与末尾数相等的0,譬如,300会给乘积提供2个0
2每一组末尾是2和末尾是5的数相乘,会给乘积结果提供1个0,譬如22和25会给乘积提供1个0。与此同时,72✕75会提供2个0,872✕875是3个0,1872✕1875是4个0
3剩下的任何因数都不提供0!!!
明白以上3条规律,现在来数0吧
首先,最后3个因数2011,2014,2017都不提供0,踢掉
注意到每10个数,个位数按1470369258循环
从1到2008,一共出现了67次循环
所以至少有67个0,至少67次2✕5
接着,我们看看100,200,300…2000中,哪些会在数列中
注意到数列可表示为3n+1(n∈N)意即所有被3除,余数1的数都会出现在数列里
所以100,400,700,1000…1900会在数列里,额外多提供了8个0
接着,同样可以发现172✕175,472✕475,…1972✕1975也在数列里,额外提供了7个0
综上所述,这个数的乘积末尾拥有0的数:
67+67+8+7=149个!
================
谢纠正...
由于其中4✕25,304✕325,604✕625...1804✕1825也出现在数列里,两两乘积也各多提供2个0
这部分共有9组18个
所以结果还需要149+18=167
  • 2楼网友:末日狂欢
  • 2021-03-15 00:51
没有追答一个0
  • 3楼网友:山君与见山
  • 2021-03-15 00:23
一个,只有乘10才有零
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯