高精度之大数阶乘

                                                  大数阶乘

  序言:今天是我写博客的第二天,差点忘了写,反思一下,下次要早点发。

     大数阶乘也是高精度题目中的入门题。它的主要思路和上一次我发的大数加法相似,也是以数组来按位处理数据。他的难度级别应该比大数加法还低一点。他的输入很简单,也不需要定义多余的辅助数组。只需要将需要求阶乘的数先输入到数组中。再将此数递减按位于数组中的数按位相乘求余,最终输出。

#include <stdio.h>
#include <string.h>
int main()
{
	int A[10000],n,i,f=0,q;
	scanf("%d",&n);
	memset(A,0,sizeof(int)*10000);
	for(i=n;i>=1;f++)
{	A[f]=i%10;
	i=i/10;
}
for(i=n-1;i>=1;i--)
{
q=0;	
for(f=0;f<10000;f++)
{
	q=q+A[f]*i;
	A[f]=q%10;
	q=q/10;
}}
for(f=9999;f>=0;f--)
if(A[f]!=0)
break;  
for(i=f;i>=0;i--)
printf("%d",A[i]);
printf("\n");
return 0;
}
  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值