主题:求N!(答对30分)
LSQ
[专家分:220] 发布于 2006-02-10 18:27:00
求N!(N!=1*2*3*4*……*(N-2)*(N-1)*N)
例如:输入:N=11
输出:11!= 39916800
回复列表 (共53个回复)
11 楼
yanchongsha [专家分:0] 发布于 2006-07-20 12:40:00
用FORTRAN77的有吗?
12 楼
SDFF [专家分:50] 发布于 2006-07-20 15:53:00
这样做
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 楼
SDFF [专家分:50] 发布于 2006-07-20 15:54:00
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 楼
SDFF [专家分:50] 发布于 2006-07-20 15:54:00
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 楼
SDFF [专家分:50] 发布于 2006-07-20 15:56:00
高精度:
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 楼
JRX [专家分:180] 发布于 2006-07-22 21:18:00
我有两种方法:
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 楼
JRX [专家分:180] 发布于 2006-07-22 21:22:00
第二种是用加法代替乘法的:
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 楼
星月神ming [专家分:180] 发布于 2007-01-06 17:32:00
input n
t=1
for i= 1 to n
t=t*n
next i
print t
endif
19 楼
zouwenkai [专家分:30] 发布于 2007-03-08 10:04:00
cls
input n
s=1
for i=1 to n
s=s*i
next i
end
20 楼
def [专家分:3380] 发布于 2007-03-18 19:58:00
j=1
input n
11100 if n=0 then j=j*n:n=n-1:goto 11100
print j
我来回复