C语言实现高精度(大位数)阶乘

简介: C语言实现高精度(大位数)阶乘

1.进位

int s=c[j]*i+jw;
            jw=s/10;
            c[j]=s%10;

源码

#include <stdio.h>
#include <string.h>
#define Max 3000
void multiply(int n);
int main()
{
    int n;
    scanf("%d",&n);
    factorial(n);
}
void factorial(int n){
    int c[Max]={0};
    c[0]=1;
    for(int i=2;i<=n;i++){
        int jw=0;
        for(int j=0;j<Max;j++){
            int s=c[j]*i+jw;
            jw=s/10;
            c[j]=s%10;
        }
    }
    int len=Max;
    for(int i=len-1;i>=0;i--)
    {
        if(c[i]==0&&len>1)
            len--;
        else
            break;
    }
    for(int i=len-1;i>=0;i--)
        printf("%d",c[i]);
}

以上代码仅供参考


目录
相关文章
|
7月前
|
存储 C语言
C语言求阶乘
C语言求阶乘
108 0
|
7月前
|
C语言
c语言编程练习题:7-41 计算阶乘和
c语言编程练习题:7-41 计算阶乘和
145 0
|
C语言
C语言之使用递归的方法求n的阶乘
C语言之使用递归的方法求n的阶乘
241 0
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
199 0
|
2月前
|
C语言
【C语言】三位数(1-4)不重复组合
【C语言】三位数(1-4)不重复组合
|
6月前
|
C语言
C语言学习记录——将三位数的个十百位单独打印,并求其和。
C语言学习记录——将三位数的个十百位单独打印,并求其和。
44 4
|
7月前
|
C语言
c语言编程练习题:7-28 求整数的位数及各位数字之和
c语言编程练习题:7-28 求整数的位数及各位数字之和
71 0
|
6月前
|
C语言
C语言---循环迭代---n的阶乘
C语言---循环迭代---n的阶乘
|
6月前
|
C语言
C语言---递归--求n的阶乘
C语言---递归--求n的阶乘
|
6月前
|
存储 C语言
C语言实现阶乘
C语言实现阶乘
140 0