进击吧!阶乘(解决求大数的阶乘)

您所在的位置:网站首页 函数示例计算n的阶乘怎么算 进击吧!阶乘(解决求大数的阶乘)

进击吧!阶乘(解决求大数的阶乘)

2024-07-13 08:19| 来源: 网络整理| 查看: 265

千里之行,始于足下

题目描述

给定一个整数N(0≤N≤10000),求取N的阶乘

输入描述:

多个测试数据,每个测试数据输入一个数N

输出描述:

每组用一行输出N的阶乘

示例1

输入 1 2 3 输出 1 2 6 问题分析

        这里我们在解决这个问题的时候很容易忽视一点,就是求阶乘的数越大,最后算出的结果就越长,结果的长度远远超出我们的意料!

        最终你会发现,对于后面数的阶乘,c/c++中所有的类型都无法存储这个数的结果,那怎么办呢?

        我们可以使用数组,数组的每个元素来存储数中的每个位数,而数组的长度可以远远容纳数的位数,知道了这一点,我们对数存储的问题就有了方案了。

解决方法

        原本是更长的代码,如果直接把代码丢过来,我担心大家会头晕😄,为此,我把许多逻辑相近的地方都浓缩了一下,变量也是设置得见名知意,代码格式也根据标准做了调整,现在的核心代码就只有几行了,现在的代码页面看起来更加清晰易懂

#include using namespace std; int main(){ int num[100000],jinwei,chengji,k,n; //其中k用于记录最高位 while(~scanf("%d",&n)){ k=1; num[1]=1; for(int i=1;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3