1 条题解
-
0
C :
#include <stdio.h> int main() { int a[2570],c,i,j,m,n; while(scanf("%d",&n)!=EOF) { a[0]=1; m=0; for(i=1;i<=n;i++){ c=0; for(j=0;j<=m;j++) { a[j]=a[j]*i+c; c=a[j]/10; a[j]%=10; } while(c) { m++; a[m]=c; c=a[m]/10; a[m]%=10; } } for(i=m;i>=0;i--) printf("%d",a[i]); printf("\n"); } return 0; }
C++ :
#include <stdio.h> int a[1111111],n; void run() { int i,m,j,t=0; a[0]=1; for(i=1;i<=n;i++) { for(j=0;j<=t;j++) a[j]*=i; for(j=0;j<t;j++) { a[j+1]+=a[j]/10; a[j]%=10; } while(a[t]>9) { a[t+1]=a[t]/10; a[t]%=10; t++; } } for(i=t;i>=0;i--) printf("%d",a[i]); printf("\n"); } int main() { scanf("%d",&n); while(n!=-1) { run(); n=-1; scanf("%d",&n); } return 0; }
Pascal :
var i,j,n,w:longint; a:array[1..100000] of integer; procedure fact(k:longint); var x,i:longint; begin x:= 0; for i := 1 to w do begin a[i]:=a[i]*k+x; x := a[i] div 10; a[i] := a[i] mod 10; end; while x>0 do begin w := w+1; a[w] := x mod 10; x := x div 10; end; end; begin while not(eof) do begin a[1] := 1; w:=1; readln(n); for i := 1 to n do fact(i); for j := w downto 1 do write(a[j]); writeln; end; end.
Java :
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n; n = scanner.nextInt(); BigInteger sum = new BigInteger("1"); for (int i = 1; i <= n; i++) { sum = sum.multiply(new BigInteger(Integer.toString(i))); } System.out.println(sum.toString()); } } }
Python :
def factorial(n): s = 1 for i in range(n): s = s*int(i+1) return s if __name__ == "__main__": while True: a = int(raw_input()) print factorial(a)
- 1
信息
- ID
- 1113
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者