- #include "stdafx.h"
- #include <iostream>
- using std::cout;
- using std::cin;
- using std::endl;
- void factorial(int x){
- int re[1000],len=1,i,carry;
- re[0]=1; //初始re[0]赋值1
- for(int mul=2;mul<=x;mul++){ //阶乘从2开始循环
- for(i=0;i<len;i++) //初步计算,临时结果的每一位都乘以i
- re[i]*=mul;
- carry=0; //进位值
- for(i=0;i<len;i++){ //循环进位
- re[i]+=carry;
- carry=re[i]/10;
- re[i]%=10;
- }
- while(carry>0){ //最高位进位
- re[len++]=carry%10;
- carry/=10;
- }
- }
- for(i=len-1;i>=0;i--)
- cout<<re[i];
- cout<<endl;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- factorial(100);
- return 0;
- }
常见C语言面试题之八:数组实现大数阶乘
最新推荐文章于 2022-09-26 21:54:01 发布
本文介绍了一种使用C++实现的大数阶乘计算方法。通过动态数组存储大数,并采用逐位乘法和进位处理的方式,实现了计算任意大小整数的阶乘的功能。该方法适用于需要处理大数运算的场景。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
1040

被折叠的 条评论
为什么被折叠?



