求y=5+7+9+...+n的值,使得y<=1000,且y最大。

来源:百度知道 编辑:UC知道 时间:2024/06/09 20:33:43
请用C++编程!!1谢谢!!

有这样一个公式:
1+3+5+7+9+……+(2n-1)=n^2
即有从1开始的n个奇数之和等于n的平方;

那么y的值比n^2小4(即没有1+3);
而31^2<1000<32^2

所以只能有连续的31个奇数,那么这个数是61;
那么y最大为:
1+3+5+7+……+59+61-(1+3)
=31^2-4
=961-4
=957

957

main()
{
int n=5,y=0;
while(y<=1000){
y=y+n;
n=n+2;
}
printf("y=%d,n=%d\n",y-n,n);
}

A1=5 ,Am=5+2*(m-1)(m为大于1的自然数)
则Sn=5+(5+1*2)+(5+2*2)+……+[5+2*(m-1)]
=5+7+9+……+n =y 其中n=5+2*(m-1)
y=m*[5+5+2*(m-1)]/2=5m+m(m-1)=m^2+4m
求m^2+4m<=1000。
解方程m^2+4m-1000=0的根:
[-4±√(4^2+4*1000)]/2因m>1,所以取正根:
m=-2+√1004<-2+32=30
则m可取的最大树枝是29
可求得n=5+2×m=5+58=63
y=986