zoukankan      html  css  js  c++  java
  • 杭电 Problem 1024 N! 【大数相乘】

    N!

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
    Total Submission(s): 74388    Accepted Submission(s): 21600


    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
     

    Author
    JGShining(极光炫影)
     

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <queue>
    #include <stack>
    #include <iostream>
    #define MAX_N   100005
    #define MAX(a, b) (a > b)? a: b
    #define MIN(a, b) (a < b)? a: b
    using namespace std;
    
    int main() {
        int n;
        int m[MAX_N];
        while (scanf("%d", &n) != EOF) {
            m[0] = 1;
            int cnt = 1;
            for (int i = 1; i <= n; i++) {
                int q = 0;
                //用i乘以m[i]的每一位,不会超范围
                //并且为了保证m中的数均为一位数,要不断取余
                for (int j = 0; j < cnt; j++) {
                    q = m[j]*i + q;
                    m[j] = q%10;
                    q /= 10;
                }
                //如果取余没有进行完,则剩下的数需要进位。
                while (q) {
                    m[cnt++] = q%10;
                    q /= 10;
                }
            }
            for (int i = cnt - 1; i >= 0; i--) {
                printf("%d", m[i]);
            }
            printf("
    ");
        }
        return 0;
    }
    


  • 相关阅读:
    linux时间格式化
    mysql5.7 安装版安装
    mac下面安装多个JDK
    linux一台机器文件传到另一台机器上
    取模运算
    【UVALive 7334】Kernel Knights
    【HDU 2604】Queuing
    【CodeForces 577B】Modulo Sum
    【CodeForces 504A】Misha and Forest
    【HDU 2203】亲和串
  • 原文地址:https://www.cnblogs.com/cniwoq/p/6770940.html
Copyright © 2011-2022 走看看