【问题描述】
对于任意给定的n值(n为整数,且1<=n<=100),计算并显示n!(阶乘)的值。
【样例】
输入:n= 10
输出: 3628800
又输入:n= 20
输出: 2432902008176640000
使用整型数组来存储大数类的每一位,并模拟手工乘法的全过程。。
#include "stdio.h"
#include "stdlib.h"
const unsigned int MAX = 10000; //整型数组的最大长度
const long long WIDTHMAX = 1000000000; //整型数组val[MAX]的元素上限
const unsigned int WIDTH = 9; //输出整型数组val[MAX]的元素时的格式宽度,即整型数组val[MAX]的元素的最多位数
typedef struct node
{
long long val[MAX]; //用来存储高精度整数
unsigned int size; //整型数组的实际长度
}BigInt;
void PrintBigInt(const BigInt & a); //输出大数类
BigInt MulBigInt(const BigInt & a, const BigInt & b); //大数类相乘
BigInt FacBigInt(unsigned int n); //大数类求阶乘
void PrintBigIn