必威体育Betway必威体育官网
当前位置:首页 > IT技术

1000的阶乘

时间:2019-06-03 04:40:00来源:IT技术作者:seo实验室小编阅读:87次「手机版」
 

1000的阶乘

1000的阶乘

算出1000的阶乘用到高精度乘法的方法,即先定义一个整形数组,这里我定义它的大小为2570,因为1000的阶乘差位数差不多就是这么大,然后从1开始乘以这2570个元素,若为0则跳过,接着作过位判断,循环1000次即可得到结果。我曾试过用vector容器,每一次进位的都把要进位的数加进容器好像比无谓地跳过0花费的时间更多,它计算1000的阶乘大概要8秒,而这个数组计算则不用1秒的时间。

#include <iOStream>
//#include <time.h>
using namespace std;


int result[2566] = {0};

void numUp()
{
	int y;
	int i = 0;
	while(i < 2566)
	{
		if(result[i] > 9)
		{
			y = result[i] / 10;
			result[i] %= 10;
			
			result[++i] += y;
		}
		else
		{
			i++;
		}
	}
}



void fun(int n)
{
	int i = 1, j = 0;
	result[0] = 1;
	for(i = 1; i < n + 1; i++)
	{
		j = 0;
		while(j < 2566)
		{
			if(result[j] == 0)
			{
				j++;
				continue;
			}
			else
			{
				result[j] *= i;
			}
			j++;
		}
		numUp();
	}
}

int main()
{
	/*freopen("in.txt","r",stdin);
	freopen("out.txt", "w", stdout);*/
	int n;
	cin >> n;
	fun(n);
	int i = 2570;
	while(result[i] == 0)
	{
		i--;
	}
	for(; i > -1; i--)
	{
		cout << result[i];
	}
	
	system("pause");
	return 0;
}

相关阅读

从游戏角度,看支付宝发1000万红包为何反被吐槽?

去年春节时期,微信推出红包功能,并籍此一度成为热点话题,今年春节临近,各大公司都开始纷纷效仿。支付宝推出了总价为6亿元的抢红包活

APP推广经验:如何做到0推广费获取10万用户,日增1000用户

初做APP,经常从seo实验室吸取运营经验,小有成绩,将我的运营经验拿出来跟大家分享一下!我们的APP在零推广费用的基础上短短几个月获得

优酷起诉自媒体鞭牛士:因其发布不实消息被要求索赔1000

A5创业网(公众号:iadmin5)1月11日报道,优酷对外宣布将起诉网络自媒体&ldquo;BiaNews(鞭牛士)&rdquo;传播不实信息,侵犯优酷商誉,索赔1000

1+2!+3!+4!+5!+6!...+20!的阶乘

long sum = 0, num = 1; for (int i = 1; i < 20; i++) { num = i * num; sum += num; Console.WriteLine(num); } Console

如何不花钱搞定1000个铁杆用户?

小编导读 : 2015年,金错刀频道会启动一个创业公益项目——《创业狠问答》。第一季就是“不花钱”系列。我被很多创业者问的最多的

分享到:

栏目导航

推荐阅读

热门阅读