zoukankan      html  css  js  c++  java
  • 精度计算——大数阶乘

    精度计算——大数阶乘

    摘自一个 ACM函数模板 ,学习记录自己的理解(^U^)ノ~YO

    语法:int result=factorial(int n)

    参数:n: n的阶乘

    返回值:阶乘的结果

    注意:

    • 本程序直接输出n!的结果,需要返回结果请保留long a[]
    • 需要 math.h

    源程序:

    int factorial(int n)
    {
        long a[10000];
        int c,m=0,w;
        a[0]=1;    //注意别少了!!!!
        for(int i=1; i<=n; i++)
        {
            c=0;  //进位
            for(int j=0; j<=m; j++)
            {
                a[j]=a[j]*i+c;
                c=a[j]/10000;    //设置为10000进制
                a[j]=a[j]%10000;
            }
            if(c>0)  //最高位还有进位
            {
                m++;    //最高位+1
                a[m]=c;    //将值赋给最高位
            }
        }
        w=m*4+log10(a[m])+1;
        printf("
    %ld",a[m]);
        for(int i=m-1; i>=0; i--)
            printf("%4.4ld",a[i]);
        return w;
    }
    
    
  • 相关阅读:
    linux Mysql 安装
    百度地图的一些操作
    Angularjs Table
    liunx安装mongodb
    ARP协议
    Python获取IP的方式与意义
    selenium 的使用--持续更
    使用pyquery
    beautiful soup的用法
    内置函数
  • 原文地址:https://www.cnblogs.com/zhanyeye/p/9746085.html
Copyright © 2011-2022 走看看