华师一附中OI组

标题: n!最右边第一个非零的数字是几 [打印本页]

作者: admin    时间: 2018-5-1 15:37
标题: n!最右边第一个非零的数字是几
一般的做法是一边计算一边去0,但其实可以用规律的
作者: admin    时间: 2018-5-1 15:40
假设是求100!末尾的最后非零数字
  1. s=1;
  2.     for (i=1;i<=n;i++)
  3.     {
  4.         s=s*i%10000; //最多一次只能出现2个零,保守一点搞4个
  5.         while (s%10==0) s=s/10; ///最后一位是0的话舍弃这些0.可能不止1个!
  6.     }
  7.     cout<<s%10<<endl; //为什么还要%10?
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2