阶乘末尾非0

时间限制:2000 ms  |  内存限制:65535 KB
难度:3
描写叙述
我们的问题非常是简单。n!

末尾非0数是几?

比方n=5的时候,n!

=120,那么n!末尾非0数是2.

输入
多组数据,

每组数据占一行,每行一个整数0<=n<=10^1000
输出
n!末尾非0数。
例子输入
5
例子输出
2

直接用的网上的模板

/*==================================================*\
| 阶乘最后非零位,复杂度 O(nlogn)
\*==================================================*/
//返回该位, n 以字符串方式传入
#include <string.h>
#include <stdio.h>
#define MAXN 10000
int a[MAXN];
char str[MAXN];
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 lastdigit(char* buf){
int len=strlen(buf),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(scanf("%s", str) == 1){
printf("%d\n", lastdigit(str));
}
return 0;
}

NYOJ1026 阶乘末尾非0 【模板】的更多相关文章

  1. n!最末尾非0数

    最小周期串:如果s是ss的周期串,那么ss就可以表示成几个周期的s,如果s是ss的最小周期串,那么s就是ss的周期串中最小的一个.例,ZgxZgxZgxZgx的最小周期串是Zgx.{很好理解} 给你一 ...

  2. Last non-zero Digit in N!(阶乘最后非0位)

    Last non-zero Digit in N! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  3. LightOj 1138 - Trailing Zeroes (III) 阶乘末尾0的个数 & 二分

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1138 题意:给你一个数n,然后找个一个最小的数x,使得x!的末尾有n个0:如果没有输出 ...

  4. Algorithm --> 求阶乘末尾0的个数

    求阶乘末尾0的个数 (1)给定一个整数N,那么N的阶乘N!末尾有多少个0?比如:N=10,N!=3628800,N!的末尾有2个0. (2)求N!的二进制表示中最低位为1的位置. 第一题 考虑哪些数相 ...

  5. [LeetCode] Factorial Trailing Zeroes 求阶乘末尾零的个数

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  6. C++ Template之非类型模板参数

    非类型模板参数是通过基本变量类型引入,例如int,在使用时必须显式自定值,不能通过推断. 非类型模板参数的限制:不能是浮点数(在vc6.0上测试可以为浮点型),对象以及指向内部链接对象的指针. #in ...

  7. 哪几个数的阶乘末尾有n个零?

    题目:哪几个数的阶乘末尾有n个0?其中n是一个正整数,从键盘输入. int main( void ) /* name: zerotail.cpp */ { int num, n, c, m; cout ...

  8. 求N!末尾的0的个数(找规律+递归)

    0\'s Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 计算整数n!(n的阶乘)末尾有多少个0. 输入 第一行输入一个数T代 ...

  9. PHP导出Excel 数字末尾变0或小数点解决办法

    为了管理方便,查阅直观性.很多网站, 或者系统都会自带导出excel或者cvs的功能.但是很多情况下,由于数字超过15位,会被显示成0或者加小数点处理.造成这种情况是由于Excel内 置的数值有效范围 ...

随机推荐

  1. HDU 1257 最少拦截系统(最长上升子序列)

    题意: 给定n个数, 然后要求看看有多少对不上升子序列. 分析: 求出最长上升子序列, 那么整个序列中LIS外的数都会在前面找到一个比自己大的数, 所以不上升子序列最多有最长上升子序列个数个. 关于求 ...

  2. Android开发——获取应用数据/缓存大小并清理缓存

    1. 获取应用数据/缓存大小 其中pm为实例化的PackageManager,因为需要遍历所有的已安装的应用.因此需要开启子线程进行处理. 还有需要注意的是,在Android4.2之前getPacka ...

  3. POJ3037 Skiing

    Skiing 题目大意: 给定一个M*N的网格,已知在每个网格中的点可以向上下左右四个方向移动一个单位,每个点都有一个高度值. 从每个点开始移动时存在一个速度值,从A点移动到B点,则此时B点的速度为& ...

  4. FZU-2147-2147 A-B Game,规律题。。

    Problem 2147 A-B Game Time Limit: 1000 mSec Memory Limit : 32768 KB  Problem Description Fat brother ...

  5. MyBatis使用Mapper动态代理开发Dao层

    开发规范 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同原始Dao接口实现类方法. Mappe ...

  6. POJ 1509 循环同构的最小表示法

    题目大意: 给定一个字符串,可以把一段尾部接到头部,这样找到一个最小的字符串 方案一: 利用循环同构中找最小表示的方法来解决 论文参考http://wenku.baidu.com/view/438ca ...

  7. POJ 1386 单词接龙问题

    题目大意: 给一堆字母,让它们进行接龙,要头对尾能够接的上,问有没有一种方法让所有成语都完成接龙 这道题实际上是在考虑是否存在一条欧拉通路,每个单词产生一条有向线段,由第一个字母指向最后一个字母 这道 ...

  8. MongoDB基本管理命令操作

    1. 查看所有数据库: show dbs 或: show databases 注意: 该命令不会显示新创建的空数据库,若想显示需要向空数据库插入一些数据. MongoDB中默认的数据库为test,若果 ...

  9. 前端学习之-- DOM

    Dom == document 1:查找 1:直接查找 document.getElementById('i1') # 根据ID获取一个标签(获取单个元素) document.getElementsB ...

  10. [HDU4607]Park Visit(树上最长链)

    HDU#4607. Park Visit 题目描述 Claire and her little friend, ykwd, are travelling in Shevchenko's Park! T ...