| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
请大牛给我看看这题为什么错#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
long long a[50][2];
int main()
{
long long n;
cin>>n;
long long max = (long long)cbrt(3*n)+100;
long long i,j,k;
long long num=0;
j=0;
for(k=0;k<=max;++k)
{
long long t=(1+k)*k*((1+k)*k)-4*(k+1)*(k*(k+1)*(2*k+1)/6-n);
if(t>=0)
{
i=(-(1+k)*k+(long long)sqrt(t))/(2*k+2);
if((k+1)*i*i+(1+k)*k*i+k*(k+1)*(2*k+1)/6==n && i>0)
{
++num;
a[j][0]=k+1;
a[j][1]=i;
++j;
}
}
}
cout<<num<<endl;
for(i=num-1;i>=0;--i)
{
cout<<a[i][0];
for(j=0;j<a[i][0];++j)
cout<<" "<<j+a[i][1];
cout<<endl;
}
//system("pause");
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator