USACO--3.1Factorials
来源:互联网 发布:顺丰软件 编辑:程序博客网 时间:2024/05/21 00:45
我开始用了一种比较笨的做法,直接用高精度将阶乘给算出来了,然后直接求出最后非零位。
其实开始的时候我的猜想是每次我们只需要用上次结果的最后非零位乘上这次的最后的非零位,应该就可以得到答案呢。但是这样的猜想是不对的,因为如果最后一位是5的话就会打破这个规律,如果我们就可以将每个数中的2,5因子都去掉,就可以用上面的猜想了。但是又要注意到2的因子数比5的多,所以我们在最后还得将多除了的2乘回去。
因为这个题的n比较小,所以我们也可以每次都只保留结果非零的最后5位,然后最后直接得到答案。
代码如下:
/*ID:15674811LANG:C++PROG:fact4*/#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define maxn 11000int main(){ //freopen("fact4.in","r",stdin); //freopen("fact4.out","w",stdout); int n,a[maxn]; while(scanf("%d",&n)!=EOF) { a[1]=1; int cnt=1,flag; for(int i=2;i<=n;i++) { flag=0; for(int j=1;j<=cnt;j++) { a[j]=a[j]*i+flag; if(a[j]>9) { flag=a[j]/10; a[j]%=10; } else flag=0; } while(flag) { a[++cnt]=flag%10; flag/=10; } } int i; for(i=1;i<=cnt;i++) if(a[i]!=0) break; printf("%d\n",a[i]); } return 0;}
/*ID:15674811LANG:C++PROG:fact4*/#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define maxn 11000int main(){ freopen("fact4.in","r",stdin); freopen("fact4.out","w",stdout); int n,a[maxn]; while(scanf("%d",&n)!=EOF) { int sum=1,mod; for(int i=1;i<=n;i++) { int j=i; while(j%2==0) { n1++; j/=2; } while(j%5==0) { n2++; j/=5; } sum=(sum*j)%10; } for(int i=1;i<=n1-n2;i++) sum=sum*2%10; printf("%d\n",sum); } return 0;}
1 0
- USACO--3.1Factorials
- USACO-Factorials
- USACO:Factorials
- usaco Factorials
- USACO 3.2 Factorials
- 【模拟】【USACO】Factorials
- USACO 3.2.1 Factorials
- USACO 3.2.1 Factorials
- USACO Section 3.2 Factorials
- USACO 3.2 Factorials (fact4)
- USACO / Factorials (简单模拟)
- USACO Factorials,DP,因子分解
- USACO section 3.2 Factorials(dp)
- USACO-Section 3.2-PROB Factorials
- USACO 3.2 Factorials阶乘(高精度)
- usaco Chapter 3 section 3.2 Factorials
- USACO Section 3.2 Factorials - 高精度模拟~
- USACO-Section 3.2 Factorials(模拟)
- Windows API (包含了所有Windows API)
- 第二十三课 用if语句实现分支结构 【项目1-6】
- 实现监听左右滑动的事件
- setObject()用法
- 如何配置Hibernate 中的表实体类 与 表字段的配置不一样
- USACO--3.1Factorials
- PacMan开发-Win32的"HelloWorld"&WinMain()函数
- soj 4243 最短路 spfa实现
- 雾的简单实现
- 自定义画柱图统计
- java/System.getProperty 获取当前路径
- node.js 初体验
- P53 第43题 三行统计个数
- leetcode 日经贴,Cpp code -ZigZag Conversion