求10000以内n的阶乘
【题目描述】
求10000以内n的阶乘。
【输入】
只有一行输入,整数n(0≤n≤10000)。
【输出】
一行,即n!的值。
【输入样例】
4
【输出样例】
24
从一开始依次乘,然后记录一下,再输出,代码:
#include<bits/stdc++.h> using namespace std; int n,m,h; int a[100000]={0}; int sum; int read()//读入优化 { int x = 0, f = 1; char ch = getchar(); while (!isdigit(ch)) { if (ch == '-') f = -1; ch = getchar(); } while (isdigit(ch)) { x = x * 10 + ch - '0'; ch = getchar(); } return x * f; } int main() { n=read(); int sum=1; a[0]=1; for(int i=1;i<=n;i++) { int jw=0; for(int j=0;j<sum;j++) { int h=a[j]*i+jw;//高精乘 a[j]=h%10; jw=h/10; } while(jw) { a[sum++]=jw%10;//处理向前多几位 jw/=10; } } for(int i=sum-1;i>=0;i--) { cout<<a[i]; } }