回 帖 发 新 帖 刷新版面

主题:求N!(答对30分)

求N!(N!=1*2*3*4*……*(N-2)*(N-1)*N)
例如:输入:N=11
     输出:11!= 39916800

回复列表 (共53个回复)

11 楼

用FORTRAN77的有吗?

12 楼

这样做
rem n!(n<=50)
CLS
DIM a(100)
a(1) = 1
INPUT n
FOR i = 1 TO n
    c = 0
    FOR j = 1 TO 100
    x = i * a(j) + c
    c = x \ 10
    a(j) = x MOD 10
NEXT j
k = 100
WHILE a(k) = 0
k = k - 1
WEND
FOR j = k TO 1 STEP -1
   PRINT USING "#"; a(j);
NEXT j
PRINT
NEXT i
END

13 楼


rem n!(n<=50)
CLS
DIM a(100)
a(1) = 1
INPUT n
FOR i = 1 TO n
    c = 0
    FOR j = 1 TO 100
    x = i * a(j) + c
    c = x \ 10
    a(j) = x MOD 10
NEXT j
k = 100
WHILE a(k) = 0
k = k - 1
WEND
FOR j = k TO 1 STEP -1
   PRINT USING "#"; a(j);
NEXT j
PRINT
NEXT i
END

14 楼


rem n!(n<=50)
CLS
DIM a(100)
a(1) = 1
INPUT n
FOR i = 1 TO n
    c = 0
    FOR j = 1 TO 100
    x = i * a(j) + c
    c = x \ 10
    a(j) = x MOD 10
NEXT j
k = 100
WHILE a(k) = 0
k = k - 1
WEND
FOR j = k TO 1 STEP -1
   PRINT USING "#"; a(j);
NEXT j
PRINT
NEXT i
END

15 楼

高精度:
rem n!(n<=50)
CLS
DIM a(100)
a(1) = 1
INPUT n
FOR i = 1 TO n
    c = 0
    FOR j = 1 TO 100
    x = i * a(j) + c
    c = x \ 10
    a(j) = x MOD 10
NEXT j
k = 100
WHILE a(k) = 0
k = k - 1
WEND
FOR j = k TO 1 STEP -1
   PRINT USING "#"; a(j);
NEXT j
PRINT
NEXT i
END

16 楼

我有两种方法:
1.
DIM A(100)
A(1)=1
INPUT N
FOR I=1 TO N
  C=0
  FOR J=1 TO 100
    X=A(J)*I+C:C=X\10:A(J)=X MOD 10
  NEXT J
  K=100
  WHILE A(K)=0:K=K-1:WEND
  PRINT I;"!=";
  FOR J=K TO 1 STEP -1
    PRINT USING"#";A(J);
  NEXT J
  PRINT
NEXT I
END

17 楼

第二种是用加法代替乘法的:
2.
INPUT N
DIM A(32767),B(32767)
FOR I=2 TO 32767
  A(I)=0
NEXT I
A(1)=1:PRINT "1!=";A(1)
FOR J=1 TO N-1
  FOR I=1 TO 32767
    B(I)=A(I)
  NEXT I
  FOR M=1 TO J
    FOR I=1 TO 32766
      R=A(I)+B(I)
      IF R>=10 THEN A(I+1)=A(I+1)+1
      A(I)=R MOD 10
    NEXT I
  NEXT M
  K=32767
  DO WHILE A(K)=0
    K=K-1
  LOOP
  PRINT J+1;"!=";
  FOR I=K TO 1 STEP -1
    PRINT USING"#";A(I);
  NEXT I
  PRINT
NEXT J
END

18 楼

input n
t=1
for i= 1 to n
t=t*n
next i
print t
endif

19 楼

cls
input n
s=1
for i=1 to n
s=s*i 
next i
end

20 楼

j=1
input n
11100 if n=0 then j=j*n:n=n-1:goto 11100
print j

我来回复

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