⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 用C语言编写的高精度阶乘的算法 可以算出n阶乘的完整结果
💻 TXT
字号:
#include <stdio.h>
#define m 38900
#define l 10001
int main()
{
    int n,size,len_t,len_r;
    int result[m]={0};
    int ttResult[m]={0};
    int tResult[m]={0},in[l]={0};
    int i,j,k,t,temp,ad;
    
    while(scanf("%d",&n)!=EOF)
    {
        len_r=1;result[0]=1;
        for(i=1; i<=n; i++)
        {
            t=i;
            for(j=0;t!=0;j++)
            {
                in[j]=t%10;
                t=t/10;                
            }
            size=j;
            for(j=0; j<size; j++)
            {
                ad=0;
                for(k=0; k<len_r; k++)
                {
                    t=0;
                    temp=result[k]*in[j];
                    tResult[k]=temp%10+ad;
                    if(tResult[k]>=10)
                    {
                        t=tResult[k]/10;
                        tResult[k]%=10;
                    }
                    ad=temp/10+t;
                }
                if(ad!=0) { len_t=len_r+1; tResult[len_r]=ad; }
                else { len_t=len_r; }
                ad=0;
                for( k=j; k<len_t+j; k++)
                {
                    temp=ttResult[k]+tResult[k-j]+ad;
                    ttResult[k]=temp%10;
                    ad=temp/10;
                    
                }
                if(ad!=0)    { len_t=len_t+j+1; ttResult[len_t-1]=ad; }
                else     {len_t=len_t+j;}                
            }
            len_r=len_t;
            for( j=0; j<len_r; j++)
            { result[j]=ttResult[j]; ttResult[j]=0; tResult[j]=0; }
        }
        for( i=len_r-1; i>=0;i--)    { printf("%d",result[i]); }
        printf("\n");
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -