• N!


    N的阶乘

    Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    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<string.h>

    #define N 7300

    #define INF 100000 // 5

    int num[N];

    void jiecheng(int n);
    void put(int n);

    int main()
    {
        int n;

        while(scanf("%d", &n) != EOF)
        {
            jiecheng(n);
            put(n);
        }
        return 0;
    }

    void jiecheng(int n)
    {
        int i, j;
        memset(num, 0, sizeof(num));

        num[0] = 1;   //只把第一位赋值了

        for(i = 1; i <= n; i++)
        {
            for(j = 0; j < 7300; j++)
            {
                num[j] *= i;  //只有第一位乘进去了
            }

            for(j = 0; j < 7300; j++)  //这个for循环要在里边,防止每次的乘的结果超过5位?
            {
                num[j+1] += num[j] / INF; 
                num[j] %= INF;                  //大数处理都一样。。
            }
        }
    }
    void put(int n)    //大数输出都一样
    {
        int i;

        for(i = 7300; i >= 0; i--)
        {
            if(num[i])
                break;
        }

        printf("%d", num[i]);

        for(i--; i >= 0; i--)
            printf("%05d", num[i]);   //每次5位,不足前导0
        printf(" ");
    }

    让未来到来 让过去过去
  • 相关阅读:
    unbuntu系统下在文件中按上下左右出现错误码
    构建之法阅读笔记
    cloudera卸载
    第二阶段团队站立会议04
    第二阶段团队站立会议03
    第二阶段团队站立会议02
    第二阶段团队站立会议01
    团队测试
    cnblogs.com的用户体验
    对于每个小组的意见
  • 原文地址:https://www.cnblogs.com/Tinamei/p/4461261.html
Copyright © 2020-2023  润新知