进击吧!阶乘(解决求大数的阶乘) |
您所在的位置:网站首页 › 函数示例计算n的阶乘怎么算 › 进击吧!阶乘(解决求大数的阶乘) |
千里之行,始于足下 题目描述给定一个整数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 |