这道题正常来说就是
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
long long sum = 1;
for (int i = n; i > 0; i--){
sum *= i;
}
cout << sum;
return 0;
}
但是!这题可是高精度乘法!
所以,需要用到高精度
#include<stdio.h>
#include<string.h>
#define maxn 3000
int f[maxn];
int main(){
int n;
scanf("%d", &n);
memset(f, 0, sizeof(f));
f[0] = 1;
for(int i = 2; i <= n; i++){
int c = 0;
for(int j = 0; j < maxn; j++){
f[j] = f[j] * i + c;
c = f[j] / 10;
f[j] = f[j]%10;
}
}
int j;
for(j = maxn-1; ; j--)
if(f[j]) break;
for(int i = j; i >= 0; i--)
printf("%d", f[i]);
return 0;
}