n 阶高精度算法1-10000的阶乘---算法集

输入:
Enter n:500
输出:
12201368259911100687012387854230469262535743428031928421924135883858453731
53881997605496447502203281863013616477148203584163378722078177200480785205
15932928547790757193933060377296085908627042917454788242491272634430567017
32707694610628023104526442188787894657547771498634943677810376442740338273
65397471386477878495438489595537537990423241061271326984327745715546309977
20278101456108118837370953101635632443298702956389662891165897476957208792
69288712817800702651745077684107196243903943225364226052349458501299185715
01248706961568141625359056693423813008856249246891564126775654481886506593
84795177536089400574523894033579847636394490531306232374906644504882466507
59467358620746379251842004593696929810222639719525971909452178233317569345
81508552332820762820023402626907898342451712006207714640979456116127629145
95123722991334016955236385094288559201872743379517301458635757082835578015
87354327688886801203998823847021514676054454076635359841744304801289383138
96881639487469658817504506926365338175055478128640000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000

#include<iostream>
using namespace std;
int main()
{
      int a[10000];
      int n;
      while(cin>>n&&n>=0)
      {
              a[0]=1;
              int temp=0;
              int digit=1;
              for(int i=2;i<=n;i++)//该for循环对于大于2的阶乘才奏效。 
              {
                      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;//越前存储比如f[0]存4不动,f[1]存2。
                              num/=10;
                              digit++;
                      }
              }
              for(int i=digit-1;i>=0;i--)//反转输出,先输出f[1]为2,再输出f[0]为4。 
              {
                      cout<<a[i];
              }
              cout<<endl;
      }
      return 0;
}
发布了106 篇原创文章 · 获赞 53 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43595030/article/details/103965667