Subtask #1 WA,求大佬调整
查看原帖
Subtask #1 WA,求大佬调整
1503064
phigrosXmincarft楼主2025/1/13 09:04
#include<bits/stdc++.h>
using namespace std;
int a[1000000]={1,1},b[4],c[2000000],s,n,m[10000],i=2;
void put(int ans[])//输出
{
	cout<<endl;
	for(int i=ans[0];i!=0;i--)
		cout<<ans[i];
}
void A_multiply_B(int a[],int b[],int c[])//高精乘
{
	for(int i=1;i<=a[0];i++)
	{
		for(int j=1;j<=b[0];j++)
		{ 
		  c[i+j]+=(c[i+j-1]+a[i]*b[j])/10;
		  c[i+j-1]=(c[i+j-1]+a[i]*b[j])%10;
		} 
	}
	if(c[a[0]+b[0]]!=0) c[0]=a[0]+b[0];
	else c[0]=a[0]+b[0]-1;
	while(c[c[0]]==0&&c[0]>1)
		c[0]--;
}
int main()
{
	cin>>n;
	for(;n>=i;i++)
	{
		m[i-2]=i;
		n-=i;
	}
	for(int j=i-2;j>=i-2-n;j--)
		m[j]++;n=1;
	for(int k=0;k!=i-2;k++)
	{
		cout<<m[k]<<" ";
		do//输入b[]
		{
			b[s+1]=m[k]%10;
			s++;
			m[k]/=10;
		}
		while(m[k]!=0);
		b[0]=s;
		s=0;
		A_multiply_B(a,b,c);
		for(int i=c[0]+1;i>=0;i--)//转换a[]与c[]
		{
			a[i]=c[i];
			c[i]=0;
		}
	}
	put(a);
}
2025/1/13 09:04
加载中...