加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

NYOJ 28 大数阶乘

发布时间:2020-12-14 03:36:05 所属栏目:大数据 来源:网络整理
导读:链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28 大数问题。 模拟手工运算,用一个变量储存进位:被乘数逐位乘以乘数。 ? #include stdio.h#include string.h#include stdlib.hint ans[20000];char tem[5];int t;//储存进位int main(){int i,j;i

链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28

大数问题。

模拟手工运算,用一个变量储存进位:被乘数逐位乘以乘数。

?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int ans[20000];
char tem[5];
int t;				//储存进位
int main()
{
	int i,j;
	int k;
	int c;
	
	scanf("%s",tem);
	
	for(i=strlen(tem)-1,j=0;i>=0;i--,j++)
		ans[j]=tem[i]-'0';


	k=strlen(tem);
	for (i=2;i<atoi(tem);i++)			//要乘的数
	{
		for (j=0;j<k;j++)			//当前的要乘的位
		{
			c=ans[j]*i+t;
			ans[j]=c%10;
			t=c/10;			//进位
		}
	
		while(t!=0)
		{
			ans[j]=t%10;
			t=t/10;
			k++;			//长度+1
			j++;
			
		}

	}
	for (i=j-1;i>=0;i--)
		printf("%d",ans[i]);
	printf("n");
	

	return 0;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读