不知为什么全wrong
查看原帖
不知为什么全wrong
85996
lonely_log楼主2020/7/28 10:31
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm> 
using namespace std;
int n,t=2,pos,z[10000],c[100000];
void gjd(int a)
{
	for(int i=1;i<=c[0];i++)c[i]*=a;
	for(int i=1;i<c[0];i++)
	{
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
	while(c[c[0]]>=10)
	{
		c[++c[0]]=c[c[0]-1]/10;
		c[c[0]-1]%=10;
	}
}
int main()
{
	cin>>n;
	while(t<=n)
	{
		z[t-1]=t;
		n-=t;
		t++;
	}
	pos=t-2;
	while(n&&pos>=1)
	{
		z[pos]++;
		pos--;
		n--;
	}
	pos=t-2;
	while(n&&pos>=1)
	{
		z[pos]++;
		pos--;
		n--;
	}
	c[0]=c[1]=1;
	for(int i=1;i<=t-2;i++)gjd(z[i]);
	for(int i=1;i<=t-2;i++)printf("%d ",z[i]);
	cout<<endl;
	for(int i=c[0];i>=1;i--)printf("%d",c[i]);
	return 0;
}

拿题解的程序对拍过,答案都没问题,但是交到洛谷上就全错,有的点还显示说我的答案第二行第一个数字是0,就是说我输出的最大乘积是0开头的,但我将3到10000输进我的程序,我的程序得出的最大乘积开头都不是0。之前也遇到过类似的情况,就是在DEV上拿洛谷数据测没问题,交到洛谷上就错,不知是不是洛谷的问题。不知道为什么这题拿不了数据。

2020/7/28 10:31
加载中...