社区讨论

TLE on #4~#7

P1134[USACO3.2] 阶乘问题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lyoeku33
此快照首次捕获于
2024/07/16 20:42
2 年前
此快照最后确认于
2024/07/16 21:50
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
#define K(x,y,z,o) for(int o=x;o>=y;o-=z) 
using namespace std;
string aa[1005];
int a[100005],b[100005];
string jf(string s,int n)
{
	reverse(s.begin(),s.end());
	int t=s.size();
	for(int i=0;i<t;i++)
	{
		a[i]=s[i]-'0';	
	} 
	for(int i=0;i<t;i++)
	{
		b[i]=a[i]*n;
	}
	int jw=0;
	string x="";
	for(int i=0;i<t;i++)
	{
		b[i]+=jw;
		jw=b[i]/10;
		b[i]%=10;
	}
	while(jw!=0)
	{
		t++;
		b[t-1]=jw%10;
		jw/=10;
	}
	while(b[t-1]=='0'&&t!=0) t--;
	for(int i=0;i<t;i++)
	{
		x+=char(b[i]+'0');
	}
	reverse(x.begin(),x.end());
	return x;
}
int main()
{
	int n;
	cin>>n;
	aa[0]="1";
	for(int i=1;i<=n;i++)
	{
		aa[i]=jf(aa[i-1],i);
	}
	string ss=aa[n];
	K(ss.size()-1,0,1,i)
	{
		if(ss[i]!='0')
		{
			cout<<ss[i];
			break;
		}
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...