HDU1066--高精度求阶乘最后非零位
2013-03-28 15:46
211 查看
题目:Last non-zero Digit in N!
#include<stdio.h> #include<string.h> #define maxn 10001 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),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'; while(len) { 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; } len-=!a[len-1]; } return ret+ret%2*5; } int main() { char n[maxn]; while(scanf("%s",n)!=EOF) { printf("%d\n",lastdigit(n)); } return 0; }
相关文章推荐
- HDU 1066 阶乘最后非零位 应用acm模板
- hdu 1066 阶乘最后非0位
- 阶乘最后非零位 ACM数论模板
- HDU 1042 N!(高精度计算阶乘)
- hdu 1066 Last non-zero Digit in N! 数学,求n!最后一位非零数
- 阶乘最后非零位 模板
- 阶乘最后非零位
- HDU 1042 N! 阶乘 高精度(java)
- HDU1042 高精度阶乘
- hdu 1066 Last non-zero Digit in N!【阶乘】
- HDOJ 1066-Last non-zero Digit in N!【阶乘最后非零解:模板】
- 快速求解阶乘最后非零位
- hdu 1066 Last non-zero Digit in N!【阶乘】
- (hdu step 2.3.7)Last non-zero Digit in N!(阶乘最后一位非零位)
- 返回阶乘最后非零位
- HDU 1042 N!(高精度计算阶乘)
- 返回阶乘最后非零位
- HDU 1042 N!(高精度计算阶乘)
- 求阶乘的最后非零位
- hdu 1066 Last non-zero Digit in N! 求N!的最后一位非0数 N很大