时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
给定一个整数N(0≤N≤10000),求取N的阶乘
输入描述:
多个测试数据,每个测试数据输入一个数N
输出描述:
每组用一行输出N的阶乘
示例1
输入
1
2
3
输出
1
2
6
题解:使用数组模拟阶乘的运算
#include<iostream>
using namespace std;
int main()
{
int a[4000000];
int n;
while(cin>>n)
{
a[0]=1;
int temp=0;
int digit=1;
for(int i=2;i<=n;i++)
{
int num=0;
for(int j=0;j<digit;j++)
{
temp=a[j]*i+num;
a[j]=temp%10;
num=temp/10;
}
while(num)
{
a[digit]=num%10;
num/=10;
digit++;
}
}
for(int i=digit-1;i>=0;i--)
{
cout<<a[i];
}
cout<<endl;
}
}