程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 階乘的精確值,階乘精確值

階乘的精確值,階乘精確值

編輯:C++入門知識

階乘的精確值,階乘精確值


輸入不超過1000的正整數n,輸出n!=1*2*3*4*···*n的精確結果。

樣例輸入:30

樣例輸出:265252859812191058636308480000000

程序:

#include <iostream>
#include <cstring>
using namespace std;

const int maxn = 3000;           // 數組長度
int f[maxn];                            // 用於存放結果

int main()
{
 int i, j, n;
 cin >> n;
 memset(f, 0, sizeof(f));         // 全部初始化為零
 f[0] = 1;                              // 結果初始化為1
 int l = 0;                              // l表示結果的長度
  //循環計算從1到n的值
 for(i = 1; i <= n; i++)       
 {
  int c = 0;
  for(j = 0; j <= l; j++)
  {
   int s= f[j] * i + c;
   f[j] = s%10;
   c= s/10;
   if(s/10 > 0 && j == l)
   l++;
  }
 }
// 通過循環輸出結果,結果長度為l
 for(i = l; i >= 0; i--)
 cout << f[i];
 cout <<endl;
 return 0;
}
   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved