蒟蒻求助
查看原帖
蒟蒻求助
528243
wangxinlong_orange楼主2021/9/8 16:11

P1249 最大乘积 不知道怎么回事,目前全部TLE,代码好像也不对 求大佬帮助

#include<cstdio>
using namespace std;
int a[1000],y[3000];
int n,j=0,x,k=2,w;
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;j++)
    {
      w=0;
      for(int m=0;m<3000;m++)
      {
        y[m]=y[m]*a[i]+w;
        if(y[m]==0)
        {
        	x=m;
        	break;
        }
        w=y[m]/10;
        y[m]%=10;
      }
    }
	for(int i=0;i<x;i++)
	{
		printf("%d",y[i]);
	}
	return 0;
}
2021/9/8 16:11
加载中...