输入输出格式

输入格式:

仅一行包含一个正整数 NN 。

输出格式:

一个整数,表示最右边的非零位的值。

输入输出样例

输入样例#1:

12
输出样例#1:

6

说明

USACO Training Section 3.2

毒瘤markdown复制不下来啊qwq。

这是一道数学题,也可以称为乱搞题。像我这样的蒟蒻见到数论一定先打表。这次打表很顺利。

用程序跑到了23!,再结合win7的计算器,苟且搞到了25!以内的数据。继续冷静分析。发现除了1!,其他的结果(尾数最靠右且不为0)只可能为2,4,6,8.再略微观察以下,由于求非零的最后一位,所以我们每次都不需保留完整信息,记着两乘数的尾数然后再记录积的尾数即可。结果在5!,15!,25!时,这个法则不适用,乘后积为0,如果放任他们这样,就会gg了。

那就尝试特判,找出的规律要求我再记下倒数第二位数字是什么。然鹅...沿着这样的思路延续了十几分钟(大概),我再也推不下去了qwq。并没有规律啊...

于是我打开了tijie,看到大家很少有严格推导证明,都是暴力模拟(?),然而他们打暴力打的还非常有道理。

好吧,我可能不得不相信,数论题就是在得知少部分结论的基础上乱搞。

ans至少保留8位数字,因为最大的数为8位,所以每次ans%=10改成%=100000000就行了(这句是从题解抄来的)

然后在注意开ll,最后输出再取个膜就星了。

code

 #include<cstdio>
#include<algorithm>
#include<cmath> using namespace std;
typedef long long ll; ll n,pre; int main()
{
scanf("%lld",&n);
pre=;
for(int i=;i<=n;i++)
{
pre=pre*i;
while(pre%==) pre/=;
pre%=;
}
printf("%lld",pre%);
return ;
}

最新文章

  1. C#基础-邮件发送
  2. MS SQL 排序规则总结
  3. 深入理解Java:类加载机制及反射
  4. iOS:如何将自己的SDK用CocoaPods管理
  5. JavaEE基础(十二)
  6. Android中 服务里的方法抽取成接口
  7. Mac下的SVN客户端工具Cornerstone使用教程
  8. angularJS+requireJS并集成karma测试实践
  9. 设置COOKIE过期时间的方法
  10. &lt;三&gt;面向对象分析之UML核心元素之参与者
  11. Socket简单实现数据交互及上传
  12. elasticsearch 学习笔记
  13. ogg12c_静默安装
  14. 大数据---Ranger-1
  15. F#周报2019年第13期
  16. ssl证书 以及phpstudy配置ssl证书
  17. 通过 txt 文件批量导入需要批量处理的数据的标识字段
  18. Python从入门到放弃系列(Django/Flask/爬虫)
  19. linux下mysql 8.0忘记密码后重置密码
  20. sqoop导入导出

热门文章

  1. 胜利大逃亡--hdu --1253(bfs)
  2. json三种类型小笔记
  3. Spring Data JPA 入门篇
  4. Meteor check
  5. sendEmail实现邮件报警发送
  6. Visual Studio VS如何卸载Visual assistant
  7. Scrum 时间估算
  8. MySQL 当记录不存在时插入,当记录存在时更新
  9. 我的第一个开源控件-DragGridView
  10. 使用JS对select标签进行联动选择