高精度階乘(遞迴版)

2021-08-06 03:03:36 字數 846 閱讀 2799

這是遞迴版的高精度階乘

#include

#include

using

namespace

std;

int a[5000000000];

int sum = 0,n,len = 1;

void e()

j = len+1;

while(c)

j--;

len = j;

if(sum == n)

e();

}int main()

a[1] = 1;

e();

return

0;}

這個計算高精度沒有問題,就是時間複雜度很高,望高手幫忙指出指出問題o(~ ̄︶ ̄~)o,優化優化

下面這個時間複雜度更高,不過沒用遞迴(遞迴也是迴圈吧),一樣的,不過這個有用優點

#includeusing namespace std;

int r[10000000],a[1000000],b[1000000],t[1000000];

int main()

w--;

for(int z = w,v = 1;z>=1;z--,v++)

for(int o = 1;o<=j;o++)

r[o+w] = add;

}len = j+w;

while(!r[len] && len>1)

for(int u = 1;u<=len;u++)

j = len;

}for(int i = len;i>=1;i--)

沒有注釋,不好的習慣,就這樣吧

高精度階乘

問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相...

高精度階乘

問題描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相應的...

階乘之和(高精度)

題目描述 用高精度計算出s 1 2 3 n n 50 其中 表示階乘,例如 5 5 4 3 2 1。輸入格式 乙個正整數n。輸出格式 乙個正整數s,表示計算結果。輸入輸出樣例 輸入3輸出9 過載運算子 include include include include using namespace s...