哈哈~要说这个题目,中午比赛的时候1AC了、、归功于之前写过的求大数的阶乘这个算法啊。。

在电脑上调试了一会,发现求阶乘的过程是一段段输出的。。就比如说10的阶乘,先输出362,然后8800,

知道了这点,那么求n的阶乘最后一个非0的数就变得很简单了。。只要加个while判断一下,就ok了、、

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>using namespace std;#define N 10005
int main(){int i,j,len;int n;while(scanf("%d",&n) != EOF){  if(n == 0 || n == 1){printf("%5d -> 1\n", n);continue;}long s[N] = {1, 1};len = 1;for(i= 2; i <= n; i ++) {for(j = 0; j < len; j ++)s[j] = s[j] * i;for(j = 0;j < len - 1; j ++) {s[j+ 1] += s[j] / 10000;s[j] = s[j] % 10000;}if(s[j] > 10000 ) {s[j + 1] = s[j]/ 10000;s[j] = s[j] % 10000;len ++;       }}int tt;int flag = 0;for (int j = 0; j < len; j ++) {flag = 0;while (s[j] > 0) {tt = s[j] % 10;s[j] /= 10;if(tt > 0) {flag = 1;break;    }}if(flag == 1) {printf("%5d -> %d\n",n, tt);break;}}}   return 0;
}

好吧。看到他们的代码了、、好简单啊。。。

#include<cstdio>
int main()
{int n,i;long long s;while(scanf("%d",&n)!=EOF){s=1;for(i=2;i<=n;i++){s*=i;while(s%10==0)s/=10;s=s%100000;}printf("%5d -> %lld\n",n,s%10);}return 0;
}

n的阶乘最后一个非0的数相关推荐

  1. 汇编--查找第一个非0字符的五种方法

    第一种 #include <windows.h> #include <stdio.h>void main(void) {int m = 0, cout = 0;char cSt ...

  2. n!末尾有多少个0以及n!末尾第一个非0数字

    (1)n!末尾有多少个0 第一种思路: n!=n*(n-1)*(n-2)*....3*2*1,而如果要出现0,必须得有2和5出现,但是明显n!中5的因子个数少于2的因子个数,即转化为求 n!中因子5的 ...

  3. python-数字反转,输入一个非 0 十进制整数

    输入一个非 0 十进制整数(不允许前导0的存在,即不允许类似 0123 这样的输入),将其反转输出. 输入格式: 一个非 0 十进制整数 输出格式: 反转后的数字 输入样例: 在这里给出一组输入.例如 ...

  4. bzoj 3552: 最右非零的数 hduoj 1066: Last non-zero Digit in N!(求N!的最后一个非0位)

    3552: 最右非零的数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 89  Solved: 27 [Submit][Status][Discuss ...

  5. 【问题思考总结】一个大于0的数乘以无穷大一定是无穷大吗?【关于定点和动点,数和函数,定区间和变区间的辨析】

    问题 在看一道题的解析的时候,发现了这个问题,就是f′(c)(n−2)f'(c)(n-2)f′(c)(n−2)当n趋于无穷且f′(c)>0f'(c)>0f′(c)>0的时候,为什么取 ...

  6. 获取numpy的第一个非0元素索引

    import numpy as np arr=np.array([0,0,2,3,0,4]) print((arr!=0).argmax(axis=0)) #2 扫码关注 实用AI客栈 获取最新AI资 ...

  7. 阶乘 最后一个不为0的数

    这道题要求N!的最后一个非0数字是多少,如果用一般作法,先统计2和5的个数,然 后补乘2,得到的将是TLE.所以还需要再做简化: 为了把0去掉,我们把所有的因数2和5都提出来,放到最后再处理.N!中的 ...

  8. 阶乘最右边的那个非0数与阶乘之和

    一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量 中:而35!就更大了,它已经无法存放在一个浮点型变量中.因此 ...

  9. 求一个整数的阶乘结果中后缀0的个数

    问题描述: 给一个整数,请输出该数字阶乘的后缀0的个数,例如: 数字7,它的阶乘为5040,后面有一个0,则输出1:还有数字10,它的阶乘为3628800,后面有两个0,则输出2. /* 功能:求一个 ...

最新文章

  1. 【我的《冒号课堂》学习笔记】设计原则(4)保变原则
  2. python中->是什么意思
  3. linear regression
  4. [攻防世界 pwn]——pwn1(内涵peak小知识)
  5. c#调用存储过程查询表并返回影响的行数
  6. 如何在Java中转义JSON字符串-Eclipse IDE技巧
  7. 爱奇艺怎么开启数据流量自动播放
  8. 为什么很多人已经很努力了
  9. 我理解设计模式C++实现观察者模式Observer Pattern
  10. ASP.NET2.0登陆控件的使用(常见的三种方法)
  11. 步进电机驱动C语言代码,单片机控制步进电机系统(C语言源代码)
  12. 简易python程序 解决linux连接steam社区错误代码:-101
  13. 软件测试文档模板 ppt,软件工程课件:软件测试用例文档模板.doc
  14. 最全Spring常用注解详解
  15. url重写(urlrewrite.xml)
  16. 第七周-C语言 求方程的共轭复根
  17. CSS 选择所有子元素添加样式
  18. Windows10如何卸载微软商店
  19. javaEE 深入理解 Session 与 Cookie
  20. 字符串统计不同类型字符的个数

热门文章

  1. 2021-05-04
  2. 解决win11 IDEA 升级或重新安装任务栏图标变成白色的问题
  3. 从CMS垃圾回收器分析常用的垃圾回收算法
  4. 学完python再学Java顺利吗,学完python再学Java要多久
  5. idea overlays文件夹_使用IDEA加载maven项目没有出现overlays目录的解决方法
  6. 一次平平无奇的UDP维修过程
  7. 第十二章 计算机网络
  8. 2017双十一复盘--开发经验总结
  9. 东北大学软件学院2021-2022软件需求设计与分析五子棋作业
  10. (重装mysql)在处理时有错误发生: mysql-server-5.7 mysql-serverE: Sub-process /usr/bin/dpkg returned an error c