POJ 1604
来源:互联网 发布:在职医学类研究生知乎 编辑:程序博客网 时间:2024/05/21 06:19
点击打开链接
题意:求一个数 的阶乘然后找到最后一个不是0的数,例如120 ,则最后一个不是0即为2
如果按照以前的方法求N!,这题肯定超时,因为只要一个数所以我们只要用到后面的5位数就可以,(5位数和最大10000相乘才不会超过int 范围)
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int s[10005];int n;void multiply(){ int i , j; memset(s,0,sizeof(s)); s[1] = 1; j = 1; for(i = 2;i <= 10000; i++) { j *= i; while(j%10 == 0)//去掉后面的0 j /= 10; j %= 100000;//j只要取后面5位数即可(6位会溢出) s[i] = j%10;//在求出第一个非0元素保存到数组中 }}int main(){ multiply(); while(cin>>n) { //注意输出格式 printf("%5d",n); cout<<" -> "<<s[n]<<endl; } return 0;}
- poj 1604
- POJ 1604
- poj-1604
- poj 1604
- POJ 1604
- poj 1604
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- 图片旋转的代码
- getResource()和getResourceAsStream以及路径问题(转)
- 工作三年了,应该记录下一些东西。
- Oracle 融合中间件产品列表
- PHP中的mysql_real_escape_string函数
- POJ 1604
- 百度和谷歌分词的差异【上】
- ubuntu eclips SVN 修改账户
- N-最短路径分词算法
- 函数中实参到形参的传递
- linux expect
- 【C/C++】标准C语言头文件
- freeBitmap方法
- 百度分词算法剖析