阶乘最后非零位 模板

转载 2012年03月27日 12:50:00
#include <iostream>

using namespace std;

#define MAXN 10000
char c[MAXN];
int lastdigit(char* buf){

	const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
	int len=strlen(buf),a[MAXN],i,c,ret=1;

	if (len==1)
		return mod[buf[0]-'0'];
	for (i=0;i<len;i++)
		a[i]=buf[len-1-i]-'0';
	for (;len;len-=!a[len-1]){
		ret=ret*mod[a[1]%2*10+a[0]]%5;
		for (c=0,i=len-1;i>=0;i--)
			c=c*10+a[i],a[i]=c/5,c%=5;
	}
	return ret+ret%2*5;


}

int main(){

	while(cin>>c){
		int result=lastdigit(c);

		cout<<result<<endl;


	}


	return 0;

}

N!(N的阶乘)最末位非0的求解方法

关于N!的最后一位非0位, 如3!=6,最后一位非0位为6, 5!=120, 最后一位非0位为2.怎么样快速的求出最后一位非0位呢?...
  • txl16211
  • txl16211
  • 2014年10月31日 13:53
  • 1731

求关于n的阶乘结果后面有几个零?如2016的阶乘(网易的笔试选择题)

文章的原地址:http://blog.csdn.net/zyh2525246/article/details/53697136 一、阶乘数小的时候可以直接计算。 例如:求10!后面零的个数...
  • qikaihuting
  • qikaihuting
  • 2017年03月25日 16:50
  • 2873

n的阶乘最后一个非0的数

哈哈~要说这个题目,中午比赛的时候1AC了、、归功于之前写过的求大数的阶乘这个算法啊。。 在电脑上调试了一会,发现求阶乘的过程是一段段输出的。。就比如说10的阶乘,先输出362,然后8800, 知...
  • yujuan_Mao
  • yujuan_Mao
  • 2013年04月05日 16:48
  • 2922

Factorial Power(阶乘最后非零位)

http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=130 1.暴力代码:
  • u014696738
  • u014696738
  • 2014年09月05日 00:34
  • 526

排列数最后非零位:poj 1150 The Last Non-zero Digit

数论 组合数学(好题)题目大意: 求排列数A(n,m)最后的非零数位解题思路: 参考英文文献,多读几遍,豁然开朗,分析见功底。 http://www.cppblog.com/abilityta...
  • u012717411
  • u012717411
  • 2015年02月07日 10:48
  • 598

求n!,C(n,m)和A(n,m)最后的非零位。

求n!,C(n,m),A(n,m)最后的非零位。   先说说怎样求n!最后的非零位吧! 比如找10!最后的非零位,由于质因数2和5的组合之后末尾会产生0,所以我们先把2,5的质因子全部去...
  • ACdreamers
  • ACdreamers
  • 2013年05月08日 21:10
  • 1167

阶乘算法全集,阶乘末尾非零位,阶末尾零的个数

/阶乘各算法的 C++ 类实现 #include iostream> #include cstring> #include iomanip>  #include cmath>  usin...
  • love_linney
  • love_linney
  • 2015年10月27日 21:02
  • 242

阶乘算法全集,阶乘末尾非零位,阶末尾零的个数(转)

阶乘算法全集,阶乘末尾非零位,阶末尾零的个数(转) 分类: ACM&&Algorithm2010-10-16 22:19 153人阅读 评论(0) 收藏 举报 算法...
  • Enjoying_Science
  • Enjoying_Science
  • 2014年10月25日 21:29
  • 698

计算阶乘最后20个非零数据

  • 2007年10月26日 09:23
  • 69KB
  • 下载

求阶乘最后一位非0位

设f(n)表示n!的最后一位非0位 d(n)表示n!中不计算5的倍数时的结果,比如d(6)=1*2*3*4*1*6 m(n)表示d(n)最后一位,并且这一位一定不为0。 m(n)很特殊,因为他是循环的...
  • qq_30080829
  • qq_30080829
  • 2017年07月13日 13:21
  • 316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阶乘最后非零位 模板
举报原因:
原因补充:

(最多只允许输入30个字)