只有十分,求大佬帮助
查看原帖
只有十分,求大佬帮助
528243
wangxinlong_orange楼主2021/9/7 20:49
#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
int a[1000],x[3000],y[3000];
int n,j=0,k=2,bi;
int main()
{
	scanf("%d",&n);
	while(n>0)
	{
		if(n>=k)
		{
			j++;
			a[j]=k;
			n-=k;
		}
		else
		{
			for(int q=j;q>=1;q--)
			{
				a[q]++;
				n--;
				if(n==0)
				{
					break;
				}
			}
		}
		k++;
	}
	for(int i=1;i<=j;i++)
	{
		printf("%d",a[i]);
		if(i!=j)
		{
			printf(" ");
		}
	}
	printf("\n");
	y[0]=1;
	for(int i=1;i<=j;i++)
	{
		for(int q=0;q<3000;q++)
		{
			x[q]=x[q]+y[q]*a[i];
			x[q+1]=x[q+1]+x[q]/10;
			x[q]=x[q]%10;
		}
		for(int q=0;q<3000;q++)
		{
			y[q]=x[q];
		}
		memset(x,0,sizeof(x));
	}
	for(int i=1;i<=3000;i++)
	{
		if(bi!=0)
		{
			break;
		}
		if((y[i]==0)&&(y[i+1]==0)&&(y[i+2]==0)&&(y[i+3]==0)&&(y[i+4]==0))
		{
			bi++;
			printf("%d",y[i]);
		}
		else
		{
			printf("%d",y[i]);
		}
	}
	return 0;
}
2021/9/7 20:49
加载中...