回 帖 发 新 帖 刷新版面

主题:[讨论]帮忙看代码

有个朋友问我怎样计算出666……6(2005个)*777……7(2005个)
我给的代码是这样子的,
DIM x#(4010)
FOR i = 1 TO 2004
x#(i) = i * 42
x#(4010 - i) = i * 42
NEXT i
[color=0000FF]x#(2005) = 2005 * 42[/color]FOR j = 1 TO 4008
x#(j) = x#(j) MOD 10
x#(j + 1) = x#(j + 1) + x#(j) - x#(j) MOD 10
NEXT j
FOR k = 4009 TO 1 STEP -1
PRINT x#(k);
NEXT k
但是系统总是说有颜色那句出问题,overflow
难道电脑4000多变量都处理不了?

回复列表 (共7个回复)

沙发

dim c(4100)
for a=1 to 4100
c(a)=-1
next a
for i=1 to 2005
for j=1 to 2005
w=i+j-1
c(w)=c(w)+2
c(w+1)=c(w+1)+c(w)\10+4
c(w)=c(w) mod 10
next j,i
for a=4100 to 1 step -1
if c(a)<>-1 then  print using "#";c(a);
next a
运行时间:30秒

板凳

修改
运行时间:80秒
运行结果:一大堆370,最后是371

3 楼

修改
IM c(4100)
FOR a = 1 TO 4100
c(a) = -1
NEXT a
FOR i = 1 TO 2005
FOR j = 1 TO 2005
x = i * j
w = i + j - 1
c(w) = c(w) + x MOD 10

c(w + 1) = c(w + 1) + c(w) \ 10 + x \ 10
c(w) = c(w) MOD 10
NEXT j, i
FOR a = 4100 TO 1 STEP -1
IF c(a) <> -1 THEN PRINT USING "#"; c(a);
NEXT a

4 楼

运行时间:约120秒

5 楼

这个算的是我的题目么???????

6 楼

抱歉第一个是的

7 楼

好象算得也不是

我来回复

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