2010-07-27 18:31:09 +0800 #1
一、超长位数加法(add.bas)
DIM x AS STRING, y AS STRING 'x和y是加数
DIM lenx AS INTEGER, leny AS INTEGER 'lenx和leny是x和y的长度
DIM i AS INTEGER, bit AS INTEGER '循环变量和当前位
DIM k AS STRING, tempK AS INTEGER 'k是当前位计算结果,tempK是进位
DIM result AS STRING '计算结果
INPUT "x="; x
INPUT "y="; y
lenx = LEN(x): leny = LEN(y)
tempK = 0
'以下显示竖式,并且保存较长加数的长度
IF lenx < leny THEN
PRINT STRING$(leny - lenx + 1, " "); x
PRINT "+"; y
PRINT STRING$(leny + 1, "-")
x = STRING$(leny - lenx, "0") + x
lenx = leny
ELSE
PRINT " "; x
PRINT "+"; STRING$(lenx - leny, " "); y
PRINT STRING$(lenx + 1, "-")
y = STRING$(lenx - leny, "0") + y
END IF
'以下逐位计算x+y
FOR i = 1 TO lenx
bit = lenx - i + 1 '当前计算位
k = STR$(tempK + VAL(MID$(x, bit, 1)) + VAL(MID$(y, bit, 1))) '当前位结果
result = RIGHT$(k, 1) + result
'向前进位
IF LEN(k) = 3 THEN '两位数含前面所空的正号是3位
tempK = 1 '置进位标志
ELSE
tempK = 0 '清进位标志
END IF
NEXT
'处理最高位进位并显示结果
IF tempK = 1 THEN
result="1" + result
PRINT result
ELSE
PRINT " " ; result
END IF
吾爱吾师,吾更爱真理。
为尊者讳,为长者讳,为能者讳,是很重要的,但是最重要的是为死者讳。
欢迎光临我的博客: blog.163.com/axiang_1975
辞职ed
DIM x AS STRING, y AS STRING 'x和y是加数
DIM lenx AS INTEGER, leny AS INTEGER 'lenx和leny是x和y的长度
DIM i AS INTEGER, bit AS INTEGER '循环变量和当前位
DIM k AS STRING, tempK AS INTEGER 'k是当前位计算结果,tempK是进位
DIM result AS STRING '计算结果
INPUT "x="; x
INPUT "y="; y
lenx = LEN(x): leny = LEN(y)
tempK = 0
'以下显示竖式,并且保存较长加数的长度
IF lenx < leny THEN
PRINT STRING$(leny - lenx + 1, " "); x
PRINT "+"; y
PRINT STRING$(leny + 1, "-")
x = STRING$(leny - lenx, "0") + x
lenx = leny
ELSE
PRINT " "; x
PRINT "+"; STRING$(lenx - leny, " "); y
PRINT STRING$(lenx + 1, "-")
y = STRING$(lenx - leny, "0") + y
END IF
'以下逐位计算x+y
FOR i = 1 TO lenx
bit = lenx - i + 1 '当前计算位
k = STR$(tempK + VAL(MID$(x, bit, 1)) + VAL(MID$(y, bit, 1))) '当前位结果
result = RIGHT$(k, 1) + result
'向前进位
IF LEN(k) = 3 THEN '两位数含前面所空的正号是3位
tempK = 1 '置进位标志
ELSE
tempK = 0 '清进位标志
END IF
NEXT
'处理最高位进位并显示结果
IF tempK = 1 THEN
result="1" + result
PRINT result
ELSE
PRINT " " ; result
END IF
吾爱吾师,吾更爱真理。
为尊者讳,为长者讳,为能者讳,是很重要的,但是最重要的是为死者讳。
欢迎光临我的博客: blog.163.com/axiang_1975
辞职ed
