1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<math.h> int a[10005]; //每次都计算 a数组*k void ans(int k){ //123 int i; //每一位都乘以k for(i=0;i<10000;i++){ a[i] = a[i]*k; } for(i=0;i<10000;i++){ a[i+1] = a[i+1] + a[i]/10; a[i] = a[i]%10; } } int main(){ int n,i; scanf("%d",&n); a[0] = 1; for(i=1;i<=n;i++){ ans(i); } int p=1000; for(i=p;i>=0;i--){ if(a[i]!=0){ p = i; break; } } for(i=p;i>=0;i--){ printf("%d",a[i]); } return 0; }
C++ :
#include <iostream> #include <cstring> using namespace std; int main(){ int n,i,j; cin>>n; int len=1; int m[10000]={1}; for(i=1;i<=n;i++){ for(j=0;j<len;j++){ m[j]=m[j]*i; } len=len+4; for(j=0;j<len;j++){ if(m[j]>=10){ m[j+1]=m[j+1]+m[j]/10; m[j]=m[j]%10; } } while(m[len-1]==0){ len--; } } int flag=0; for(i=len;i>=0;i--){ if(m[i]!=0){ flag=1; } if(flag==1){ cout<<m[i]; } } }
Python :
s=1 for i in range(1,int(input())+1): s*=i print(s)
- 1
信息
- ID
- 2206
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者