c语言求高精度n!用数组求怎么做

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:55:04
不限定N的大小。即:输入一个整数N的值,输出N!的结果。
完成解题报告

int fun(int w)
{
if(w>1)
w=w*fun(w-1);
else if(w=1)
return 1;
else return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a;

cin>>a;
cout<<fun(a);

}

涉及到大整数的问题
建议使用java的BigInteger类
用C需要编写一个函数,使用数组来储存每个位的值
这里我用C++写了一个类,你自己先看看
------------------------------------------------
//BigCount.h头文件
#include<stdio.h>
#include <iostream.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#define MAX 1000
class BigCount{
private:
int math1[MAX],math2[MAX],mathOK[MAX];
int w1,w2;
//w1是整数1的位数 w2是整数2的位数
//char str1[MAX],str2[MAX];
public:
BigCount()
{
int i=0;
for(;i<MAX;i++)
{
math1[i]=0;
math2[i]=0;
mathOK[i]=0;
}
w1=w2=0;
}

int Diversion(char *str1,char *str2)