高精度练习(hdoj1042)

简介:
Problem Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
 
Input
One N in one line, process to the end of file.
 
Output
For each N, output N! in one line.
 
Sample Input
1
2
3
 
Sample Output
1
2
6
 
#include <stdio.h>
#include <stdlib.h>
char* myblog[] = {
    "http://www.cnblogs.com/archimedes/",
    "hdoj1042",
    "mail: codingwu@gmail.com"};

int a[50000];

void count(int n)
{
    int i, flag, digit, j, t;
    a[0] = 1;
    digit = 1;
    j = 1;
    for(i = 2; i <= n; i++) {
        flag = 0;
        for(j = 0; j < digit; j++) {
            t = a[j] * i + flag;
            if(t >= 10) {
                a[j] = t % 10;
                flag = t / 10;
            } else {
                a[j] = t;
                flag = 0;
            }
        }
        if(flag) {
            while(flag) {
                a[j] = flag % 10;
                flag /= 10;
                digit++;
                j++;
            }
        }
    }
    for(i = j - 1; i >= 0; i--)
        printf("%d", a[i]);
    printf("\n"); 
}

void solve()
{
    int n;
    while(scanf("%d", &n) != EOF) {
        if(n == 0) printf("1\n");
        else count(n);
    }
}

int main()
{
    solve();
    return 0;
}
目录
相关文章
hdoj 2089 不要62
这题数据量相对比较小,可以暴力打表解决。不过我这里用数位dp 刚开始学数位dp,参考了别人的代码。
55 0
HDOJ 2056 Rectangles
HDOJ 2056 Rectangles
133 0
|
机器学习/深度学习
HDOJ 2074 叠筐
HDOJ 2074 叠筐
118 0
HDOJ 1214 圆桌会议
Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也...
852 0
|
Java
HDOJ 1715 大菲波数
Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3。 计算第n项Fibonacci数值。 Input 输入第一行为一个整数N,接下来N行为整数Pi(1
866 0
HDOJ 2075 A|B?
Problem Description 正整数A是否能被正整数B整除,不知道为什么xhd会研究这个问题,来帮帮他吧。 Input 输入数据的第一行是一个数据T,表示有T组数据。
950 0
HDOJ 2013 蟠桃记
Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题! 什么问题?他研究的问题是蟠桃一共有多少个! 不过,到最后,他还是没能解决这个难题,呵呵^-^ 当时的情况是这样的: 第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。
1082 0
|
机器学习/深度学习
HDOJ 1028(整数划分)
/* 大概思路是开2个数组,c1[ ]保存当前得到的多项式各项系数,c2[ ]保存每次计算时的临时结果, 当每次计算完毕后,把它赋给c1,然后c2清零。 计算的时候,开3层for循环。最外层,记录它正在与第几个多项式相乘。
775 0