HDU 杭电OJ 1042 N!
2018-03-03 10:25
489 查看
#include "bits/stdc++.h" #define max_n 10005 using namespace std; int a[max_n + 10]; int main(){ int n; while (scanf("%d", &n) != EOF){ memset(a,0,sizeof(a)); a[0] = 1; int count = 2; while (count <= n){ for (int i = 0; i <= max_n; i++){ a[i] *= count; } for (int i = 0; i <= max_n; i++){ if (a[i] > 10000) { a[i+1] += a[i] / 10000; a[i] = a[i] % 10000; } } count++; } int p = max_n + 9; while (a[p] == 0 && p > 0){ p--; } printf("%d",a[p]); for (int i = p - 1; i >= 0; i--){ printf("%04d",a[i]); } cout << endl; } }
本题开始的时候用的是十进制,每位仅存一位,后来发现10000的数字太大,开辟的数组空间大,而且时间计算也高,只能考虑一种新的思路,万进制,每位存最高9999的数,然后输出。特别棒!
相关文章推荐
- 杭电OJ(HDU)-ACMSteps-Chapter Two-《An Easy Task》《Buildings》《decimal system》《Vowel Counting》
- 杭电HDU 1042大数阶乘N!
- 田忌赛马 南阳oj364 HDU杭电1052【贪心】
- 杭电oj-1042-N!
- hdu(杭电oj)第一页题目题解
- HDU-OJ 杭电2066 一个人的旅行——dijkstra
- 杭电OJ 1042 N!(大数阶乘模板)
- HDU-OJ Problem - 1042 N!
- 纠结的HDU(杭电OJ)1013
- 【HDU 杭电OJ 1257 最少拦截系统】
- 杭电OJ(HDU)-ACMSteps-Chapter Two-《An Easy Task》《Buildings》《decimal system》《Vowel Counting》
- 杭电OJ(HDU)-ACM Steps-Chapter One-《A+B for Input-Output Practice》 1至8 全解
- hdu(杭电oj)第一页题目题解
- 杭电HDU1042(有点坑的高精度)
- 杭电OJ(HDU)-ACM Steps-Chapter Two-《Biker's Trip Odometer》《Climbing Worm》《hide handkerchief》《Nasty Hac》
- HDU-OJ 杭电2037 今年暑假不AC——Pair写法
- 【HDU 杭电OJ 1025 Constructing Roads In JGShining's Kingdom】
- 杭电OJ(HDU)-ACMSteps-Chapter Three-《FatMouse' Trade》《今年暑假不AC》《排名》《开门人和关门人》
- HDU-OJ 杭电 1176 免费馅饼
- 杭电 HDU 1042 N!