美文网首页
求解大数阶乘 【C语言】

求解大数阶乘 【C语言】

作者: 善法 | 来源:发表于2018-10-22 09:45 被阅读0次

题目

编写一个算法,计算 2018 的阶乘

代码

/* 设计思路:自底向上迭代求值 */

#include <stdio.h>
#define maxSize 6000

int main()
{
    int n; // 计算n的阶乘
    // 新建短整型数组a[maxSize+1]:a[0]存放有效数据长度、a[1-maxSize]存放数据
    short a[maxSize+1];
    while(scanf("%d", &n))
    {
        a[0]=1;a[1]=1;
        for (int i=2; i<=n; i++)
        {
            for (int j=1; j<=a[0]; j++)
                a[j] *= i;
            for (int j=1; j<=a[0]; j++)
            {
                short carry = a[j]/10;
                if (j == a[0])
                {
                    if (carry)
                        a[0]++;
                    a[j+1] = carry;
                }
                else
                    a[j+1] += carry;
                a[j] %= 10;
            }
        }
        for (int i=a[0]; i>=1; i--)
            printf("%hd", a[i]);
        printf("\n");
    }
}

相关文章

  • 求解大数阶乘 【C语言】

    题目 编写一个算法,计算 的阶乘 代码

  • C语言:阶乘

    最近闲来无事,整理以前的写的很多 demo,发现以前写过很多 C 语言的算法,最近就把它们全部整理一下。这次写 阶...

  • HDU1066

    一个超时的写法:c++大数阶乘+字符处理(逆序)

  • C语言-求阶乘

    问题描述:求阶乘 源代码: 运行结果: 程序参数: 输出大小: 148.337890625 KiB 编译时间: 0...

  • ARM汇编语言与C语言混合编程(part1)

    汇编语言调用C语言 题目:用汇编语言调用C语言实现21!(21的阶乘) 实验软件:ARM Developer Su...

  • C++计算一个大数的阶乘的代码

    下边内容段是关于C++计算一个大数的阶乘的内容。 #include #include using ...

  • Leetcode.172.Factorial Trailing

    题目 求出n的阶乘末尾有多少个0. 思路 如果强行求解n的阶乘, 时间复杂度太高.求解多少个0, 就需要对10进行...

  • C语言-求阶乘问题

    问题描述:求阶乘问题 源代码: 运行结果: 遇到问题: 1、粗心失误main()函数中 注意这里是 “函数名(变量...

  • 大数阶乘

    大数阶乘 题目:求阶乘要求:求200以上的数的阶乘。即普通的数据类型是不可能表达出所求的数据。 解题: 方法一:B...

  • 经济

    大数据 编程 CAD C语言

网友评论

      本文标题:求解大数阶乘 【C语言】

      本文链接:https://www.haomeiwen.com/subject/qghjzftx.html