3 条题解
-
1
#include<bits/stdc++.h> #define ll long long #define un unsigned #define int long long #define db double #define st string #define ct const #define xh(a,b,c) for(int a=b;a<=c;a++) #define wx while(1) #define dn(a,b,c) for(int a=b;a>=c;a--) using namespace std; un ll ans[1010]; int n; void print(){ int k=1000; while(!ans[k])k--; dn(i,k,1)cout<<ans[i]; } void dfs(int i){ i++; if(i==n+1){ print(); return ; } int jw=0; xh(j,1,1000){ ans[j]=ans[j]*i+jw; jw=ans[j]/10; ans[j]%=10; } dfs(i); } signed main(){ cin>>n; ans[1]=1; printf("%d!=",n); dfs(0); return 0; }
-
1
普通高精
#include<bits/stdc++.h> using namespace std; int n; int num[1000005],cnt; signed mian(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n; num[1]=1;cnt=1; for(int i=2;i<=n;i++){ for(int j=1;j<=cnt;j++) num[j]*=i; for(int j=1;j<cnt;j++) if(num[j]>9) num[j+1]+=num[j]/10,num[j]%=10; while(num[cnt]>9) num[cnt+1]+=num[cnt]/10,num[cnt]%=10,cnt++; } cout<<n<<"!="; for(int i=cnt;i>=1;i--) cout<<num[i]; return 0; } //if you copy this code,you will get a big surprise! -
-2
#include <bits/stdc++.h> using namespace std; int a[1000]; int main() {
int n,i,j,c=0,p; cin>>n; cout<<n<<"!="; if(n==1) { cout << "1"; } else { a[0]=1; for(i=2;i<=n;++i) { c=0; for(j=0;j<1000;++j) { p=a[j]*i+c; a[j]=p%10; c=p/10; } } for(i=999;i>=0;--i) if(a[i]>0)break; for(j=i;j>=0;--j) cout<<a[j]; } return 0;}
- 1
信息
- ID
- 624
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 135
- 已通过
- 21
- 上传者