回 帖 发 新 帖 刷新版面

主题:来就送分(2)

因一个主题每各人最多只能锝50分,所以,如果你发现你在"来就送分"帖子中有的尚未评分,请把帖子复制到这里来,继续加分!特此通知!

回复列表 (共23个回复)

21 楼

CLS
INPUT n, m
PRINT n; "^"; m; "=";
IF m = 0 THEN PRINT 1: END
DIM a(n), b(n), s(n): l$ = "1"
FOR i = 1 TO m
    ERASE a, b, s
    a$ = l$: b$ = LTRIM$(STR$(n))
    GOSUB gjdmult
    l$ = ""
    FOR j = ls TO 1 STEP -1
        l$ = l$ + RTRIM$(LTRIM$(STR$(s(j))))
    NEXT j
NEXT i
PRINT " "; l$: END
gjdmult: la = LEN(a$): lb = LEN(b$): DIM a(la), b(lb), s(la + lb)
FOR k = 1 TO la: a(k) = VAL(MID$(a$, la + 1 - k, 1)): NEXT k
FOR k = 1 TO lb: b(k) = VAL(MID$(b$, lb + 1 - k, 1)): NEXT k
FOR k = 1 TO la: FOR l = 1 TO lb
    d = a(k) * b(l): v = k + l - 1
    s(v) = s(v) + d MOD 10: s(v + 1) = s(v + 1) + s(v) \ 10 + d \ 10
    s(v) = s(v) MOD 10
NEXT l, k
IF s(la + lb) = 0 THEN ls = la + lb - 1 ELSE ls = la + lb
RETURN

22 楼

发表时间:2007-5-4 16:58:00    [回复]  [引用] 
3 楼  
阶乘
CLS
DIM a(100), b(100)
10 INPUT n
IF n > 50 THEN GOTO 10
a(1) = 1: m = 1
FOR i = 1 TO n
  FOR j = m TO 1 STEP -1
    a(j) = a(j) * i
    IF a(j) > 99 THEN
      a(j + 1) = a(j + 1) + a(j) \ 100
      a(j) = a(j) MOD 100
    END IF
  NEXT j
  IF a(m + 1) > 0 THEN m = m + 1
  FOR w = m TO 1 STEP -1
    b(w) = b(w) + a(w)
    IF b(w) > 99 THEN
      b(w + 1) = b(w + 1) + b(w) \ 100
      b(w) = b(w) MOD 100
    END IF
  NEXT w
NEXT i
x = m
FOR i = x TO 1 STEP -1
  IF b(x) > 99 THEN
    b(i + 1) = b(i) \ 100
    b(i) = b(i) MOD 100
    IF i = x THEN m = x + 1
  END IF
NEXT i
FOR i = m TO 1 STEP -1
  q$ = LTRIM$(STR$(b(i)))
  PRINT q$;
NEXT i
END

23 楼

一,十进制化为二进制
dim a(100)
input "x=";x
print "(";x;")10="
if x<0 then print "-";:x=-x
n=0
10 s=int(x/2)
n=n+1
a(n)=x-2*s
x=s
if x<>0 then 10
for i=n to 1 step -1
print a(i)
next i
print ";2"
end

二、二进制化为十进制
input "R$=";R$
print "(";R$;")2=("
if left$(R$,1)="-" then print "-";:R$="mid$(R$,2)
M=len(R$)
S=0
for i=1 to M
N$=mid$(R$,i,1)
N=val(N$)
S=S+N*2^(M-i)
next i
print S;")10"
end

我来回复

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