给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
#include <stdio.h>
#include <string.h>
#define MAXNUM 50000 //这个数要开的大一点
int main(int argc, char* argv[])
{
int n;
int i, j;
int a[MAXNUM];
int digit = 0;
int carry = 0;
int tmp;
while(scanf("%d", &n) != EOF)
{
memset(a, 0, sizeof(a));
a[0] = 1;
digit = 1;
if(n == 0)
{
n = 1;
}
for(i = 1; i <= n; i++)
{
carry = 0;
for(j = 0; j < digit; j++)
{
tmp = a[j] * i + carry; //比忘记进位
carry = tmp / 10;
a[j] = tmp % 10;
}
if(carry)
{
while(carry)
{
a[j] = carry % 10;
j++;
carry = carry / 10;
digit = j;
}
}
}
for(i = digit - 1; i >= 0; i--)
{
printf("%d", a[i]);
}
printf("\n");
}
return 0;
}