1057 N的阶乘
Posted #忘乎所以#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1057 N的阶乘相关的知识,希望对你有一定的参考价值。
输入N求N的阶乘的准确值。
Input
输入N(1 <= N <= 10000)
Output
输出N的阶乘
Input示例
5
Output示例
120
本来用的是大数乘法,结果最后超时啦,
然后用数组存一下,类似于10000进制,
将所有的数保留,当进位的时候才会加一。
1 #include <bits/stdc++.h> 2 using namespace std; 3 #define N 1e4 4 int a[10010]; 5 void fancy(int x){ 6 int res = 0; 7 a[0]=1; 8 for(int i=1;i<=x;i++){ 9 int flag = 0; 10 for(int j=0;j<=res;j++){ 11 a[j] = a[j]*i+flag; 12 flag = a[j]/10000; 13 a[j]%=10000; 14 } 15 if(flag>0){ 16 a[++res] = flag; 17 } 18 } 19 printf("%d",a[res]); 20 for(int i=res-1;i>=0;i--){ 21 printf("%04d",a[i]); 22 } 23 printf("\n"); 24 } 25 int main(){ 26 int n; 27 cin>>n; 28 fancy(n); 29 return 0; 30 }
以上是关于1057 N的阶乘的主要内容,如果未能解决你的问题,请参考以下文章