题目描述
给出一个数 N , 求N!
输入
输入一个数 N ,1<= N <=1000。
输出
输出一个数为 N! 。
样例
-
输入 5 输出 120
-
输入 10 输出 3628800
-
输入 20 输出 2432902008176640000
#include<stdio.h>
int main()
{
int a[100000]={1},n,m=1,t=0,product;//当n=1000时过大,需要使用数组
scanf("%d",&n);//输入数字
for(int i=1;i<=n;i++)
{
for(int j=0;j<m;j++)//m位数
{
product=a[j]*i+t;//每位数与i的乘积加上后位向前进位的数
t=product/10;//向前一位进的数
a[j]=product%10;//保留的数
if(j==(m-1)&&t!=0) m++;//扩大位数
}
}
for(int i=(m-1);i>=0;i--)//数组逆序输出
printf("%d",a[i]);
return 0;
}