p.s.个人收录用
题目描述
用高精度方法,求N!的精确值(N以一般整数输入)。
输入
输入一个整数n( 1<= n <= 350)
输出
输出n!
样例输入 Copy
10
样例输出 Copy
3628800
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//高精度求N!
int a[2000];
int main()
{
int n;
scanf("%d", &n);
memset(a, 0, sizeof(a));
a[0] = 1;
for (int i = 1; i <= n; i++)
{
int b = 0;//进的数
int s;
for (int j = 0;j<2000; j++)
{
s = a[j] * i + b;
a[j] = s % 10;//留
b = s / 10;//进
}
}
int i;
//除去0
for (i = 1999;i>=0; i--)
{
if (a[i])
break;
}
for (int j = i; j >= 0; j--)
{
printf("%d", a[j]);
}
printf("\n");
}