回 帖 发 新 帖 刷新版面

主题:问题

求若干个连续的自然数,使这些自然数之和为1000。

回复列表 (共6个回复)

沙发

1) N(1----1000)
2)求A
3)判断A是否是整数 AND A》0------------?
4)IF ———— AND ———————— THEN
FOR I=A TO A+N-1
?I
NEXT I

END IF
正确答案:
CLS
FOR N=1 TO 1000
A=(1000-(1+(N-1))*(N-1)/2)/N
IF INT(A)=A AND A》0 THEN
FOR I=A TO A+N-1
?I;
NEXT I :END IF
NEXT N
END

板凳

[quote]1) N(1----1000)
2)求A
3)判断A是否是整数 AND A》0------------?
4)IF ———— AND ———————— THEN
FOR I=A TO A+N-1
?I
NEXT I

END IF
正确答案:
CLS
FOR N=1 TO 1000
A=(1000-(1+(N-1))*(N-1)/2)/N
IF INT(A)=A AND A》0 THEN
FOR I=A TO A+N-1
?I;
NEXT I :END IF
NEXT N
END[/quote]
这哪叫正确答案……
题目没要求从1开始!
要穷举的话根本应该用双循环的
for n=1 to 998
  for m=n+1 to 999
    s=(1000-(n+(m-n))*(m-n)/2)/(m-n+1)
    if s=int(s) and s>0 then
     ? 
     for i=s to m-n+1
       ?i,
     next i
    end if
  next m
next n

3 楼

楼上有所不知,
那的确是正确答案,事实可以证明的.

但他用了三次 n-1
而且梯形公式用得不太妥当 (1+(n-1))

具体原理可以自己先行琢磨一下.
不明白可以提问.

双循环当然也能得出答案,
但速度与时间方面是有差别的.
但问题是你的梯形公式却更是很有问题
s=(1000-(n+(m-n))*(m-n)/2)/(m-n+1)
你把问题复杂化了,我都看不清楚是不是正确的了.
但我运行了一下,结果证明是不可行的.

4 楼

[quote]楼上有所不知,
那的确是正确答案,事实可以证明的.

但他用了三次 n-1
而且梯形公式用得不太妥当 (1+(n-1))

具体原理可以自己先行琢磨一下.
不明白可以提问.

双循环当然也能得出答案,
但速度与时间方面是有差别的.
但问题是你的梯形公式却更是很有问题
s=(1000-(n+(m-n))*(m-n)/2)/(m-n+1)
你把问题复杂化了,我都看不清楚是不是正确的了.
但我运行了一下,结果证明是不可行的.[/quote]
谢谢我重新整理一下思路

5 楼

cls
p=1
do
t=p:s=0:p=p+1
do
s=s+t:t=t+1
loop s>=1000
if s=1000 then ? p;"-";t-1:end
loop

6 楼

cls
for i=1 to 1000\2
for j=1 to 1000\2
 if (i+j)*(j-i+1)/2=1000 then ? i;"--";j
next j,i
end
注释:I模拟的是首项
     J模拟的是外项
     根据高斯(首项+外项)*项数/2的公式得出的IF

我来回复

您尚未登录,请登录后再回复。点此登录或注册