n的阶乘最后一个非0的数
哈哈~要说这个题目,中午比赛的时候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的数相关推荐
- 汇编--查找第一个非0字符的五种方法
第一种 #include <windows.h> #include <stdio.h>void main(void) {int m = 0, cout = 0;char cSt ...
- n!末尾有多少个0以及n!末尾第一个非0数字
(1)n!末尾有多少个0 第一种思路: n!=n*(n-1)*(n-2)*....3*2*1,而如果要出现0,必须得有2和5出现,但是明显n!中5的因子个数少于2的因子个数,即转化为求 n!中因子5的 ...
- python-数字反转,输入一个非 0 十进制整数
输入一个非 0 十进制整数(不允许前导0的存在,即不允许类似 0123 这样的输入),将其反转输出. 输入格式: 一个非 0 十进制整数 输出格式: 反转后的数字 输入样例: 在这里给出一组输入.例如 ...
- 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 ...
- 【问题思考总结】一个大于0的数乘以无穷大一定是无穷大吗?【关于定点和动点,数和函数,定区间和变区间的辨析】
问题 在看一道题的解析的时候,发现了这个问题,就是f′(c)(n−2)f'(c)(n-2)f′(c)(n−2)当n趋于无穷且f′(c)>0f'(c)>0f′(c)>0的时候,为什么取 ...
- 获取numpy的第一个非0元素索引
import numpy as np arr=np.array([0,0,2,3,0,4]) print((arr!=0).argmax(axis=0)) #2 扫码关注 实用AI客栈 获取最新AI资 ...
- 阶乘 最后一个不为0的数
这道题要求N!的最后一个非0数字是多少,如果用一般作法,先统计2和5的个数,然 后补乘2,得到的将是TLE.所以还需要再做简化: 为了把0去掉,我们把所有的因数2和5都提出来,放到最后再处理.N!中的 ...
- 阶乘最右边的那个非0数与阶乘之和
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量 中:而35!就更大了,它已经无法存放在一个浮点型变量中.因此 ...
- 求一个整数的阶乘结果中后缀0的个数
问题描述: 给一个整数,请输出该数字阶乘的后缀0的个数,例如: 数字7,它的阶乘为5040,后面有一个0,则输出1:还有数字10,它的阶乘为3628800,后面有两个0,则输出2. /* 功能:求一个 ...
最新文章
- 【我的《冒号课堂》学习笔记】设计原则(4)保变原则
- python中->是什么意思
- linear regression
- [攻防世界 pwn]——pwn1(内涵peak小知识)
- c#调用存储过程查询表并返回影响的行数
- 如何在Java中转义JSON字符串-Eclipse IDE技巧
- 爱奇艺怎么开启数据流量自动播放
- 为什么很多人已经很努力了
- 我理解设计模式C++实现观察者模式Observer Pattern
- ASP.NET2.0登陆控件的使用(常见的三种方法)
- 步进电机驱动C语言代码,单片机控制步进电机系统(C语言源代码)
- 简易python程序 解决linux连接steam社区错误代码:-101
- 软件测试文档模板 ppt,软件工程课件:软件测试用例文档模板.doc
- 最全Spring常用注解详解
- url重写(urlrewrite.xml)
- 第七周-C语言 求方程的共轭复根
- CSS 选择所有子元素添加样式
- Windows10如何卸载微软商店
- javaEE 深入理解 Session 与 Cookie
- 字符串统计不同类型字符的个数
热门文章
- 2021-05-04
- 解决win11 IDEA 升级或重新安装任务栏图标变成白色的问题
- 从CMS垃圾回收器分析常用的垃圾回收算法
- 学完python再学Java顺利吗,学完python再学Java要多久
- idea overlays文件夹_使用IDEA加载maven项目没有出现overlays目录的解决方法
- 一次平平无奇的UDP维修过程
- 第十二章 计算机网络
- 2017双十一复盘--开发经验总结
- 东北大学软件学院2021-2022软件需求设计与分析五子棋作业
- (重装mysql)在处理时有错误发生: mysql-server-5.7 mysql-serverE: Sub-process /usr/bin/dpkg returned an error c