#include <stdio.h>
int calculate(int pos, int arr[], int size) {
int carry = 0;
for (int i = 0; i < size; i++) {
int multiply = arr[i] * pos + carry;
arr[i] = multiply % 10;
carry = multiply / 10;
}
while (carry != 0) {
arr[size] = carry % 10;
carry = carry / 10;
size++;
}
return size;
}
void print(int arr[], int size) {
for (int i = size - 1; i > 0; i--) {
printf("%d", arr[i]);
}
printf("%d", arr[0]);
}
int main()
{
int num = 14, arr[100] = { 0 }, size = 1;
arr[0] = 1;
for (int i = 2; i < num + 1; i++) {
size = calculate(i, arr, size);
}
print(arr, size);
return 0;
}
/*
run:
87178291200
*/