#include "stdio.h"
void main()
{int i,d,find=0;
int a0,a1,a2,a3,a4;
for(i=0;i<1000&&find==0;i++)
for(d=0;d<1000;d++)
{a0=i;
a1=i+d;
a2=i+2*d;
a3=i+3*d;
a4=i+4*d;
if(a0+a1+a2+a3==26&&a0*a1*a2*a3==880)
{
find=1;
break;
}
}
printf("%d %d %d %d %d",a0,a1,a2,a3,a4);
}
int seeker(int N,int H,int J,int NewN)
{
//输入参数N,前N项
//H:前N项的和
//J:前N项的积
//NewN:前NewN项的立方和
//等差数列公式
//an=a0+(n-1)b
//Sn=a0*n+(0+n-1)*n/2*b
//S4=a0*4+(0+4-1)*4/2*b=4*a0+6b
//由于是正整数,故a0>0,b>0
//返回值大于0表示正确找到
int tmpCount;
tmpCount=H/N;//为了减少计算次数,约束循环数tmpCount
for(int i=1;i< tmpCount;i++)
{
int Sn;
for(int j=1;j
Sn=i*N+(N-1)*N/2*j;
if(Sn==H)//当和符合条件时往下执行
{
int tmpB;
tmpB=J;
for(int k=1;k
tmpB=int(tmpB/i);
}
for (int k=1;k
int Jn=1;
for(int n=1;n
Jn=Jn*(i+(n-1)*k);
}
if(Jn==J)
{
int LF=0;
for(int m=1;m
int an=(i+(m-1)*k);
LF=LF+an*an*an;
}
return LF;
}
}
}
}
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("%d",seeker(4,26,880,5));
return 0;
}