大整数阶乘计算

#include "stdafx.h"
#include "iostream.h"

//int  factorial(int n,int a[1000])//刚开始的时候想返回一个数组,但是程序出错,后来加了一个循环,在函数内输出,就没事了,但是不是输出数组
void factorial(int n)
{
	int a[1000]={1,0};//a is the result
	//a[0]=1;
	//a[1]=0;
	int m=0;//m is the bit number
       //刚开始的时候,设置m=1,但是多出来一位,后来是因为理解错了。for(;c;c/=10)会解决c不为零的情况的
        for(;n;n--)
	{
	int c=0;//c is 
	for(int i=0;i<=m;i++)
	{
	  c+=a[i]*n;
	  a[i]=c%10;
	  c/=10;
	}
	for(;c;c/=10)
	{
	 a[++m]=c%10;
	}
	}
    
	for(int i=m;i>=0;i--)
	{
	 cout<<a[i];
	}
//	return a;
}

int main(int argc, char* argv[])
{
	int n;
	//int a[1000];
    cout<<"Please put in the n:";
    cin>>n;
	//cout<<"the factorial of n is:"<<factorial(n)<<endl;
	factorial(n);
	cout<<endl;
	return 0;
}
原文地址:http://blog.csdn.net/wuzhekai1985/article/details/6845868
什么都不说了,直接上程序吧。写的很挫,请见谅~~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值