c 高精度階乘,c 高精度階乘

時間 2022-03-08 13:55:05

1樓:午時茶

#include//萬能標頭檔案 using namespace std; int a[100000],n,i,y,xy[100000],s[100000];//s[0]和a[0]表示兩個陣列的長度 //s表示答案,a表示階乘,先算出階乘,放在a裡,再把s和它相加,更新s void add()//表示s=s+a while (xy[xy[0]+1]>0) //進位 s[0]=xy[0];//長度也要更新 for (i=1;i<=xy[0];i++) s[i]=xy[i];//將xy給s } int main()//愉快的開始了主程式 while (xy[xy[0]+1]>0)//進位 for (i=1;i<=xy[0];i++) a[i]=xy[i];//算出y!放入a內 a[0]=xy[0]; add();//進行高精度加法 } for (i=s[0];i>=1;i--) cout<

2樓:匿名使用者

//你的事大整數乘法嗎?下面是大整數乘法

#include

#include

using namespace std;

int* suma(int m,int n);

int* mul(int m,int e);

int main(void);

int n[max] = ;

int c[2*max] = ;

string a,b;

cin >> a;

int s = a.length();

cin >> b;

int k = b.length();

if(s>=k)

int z = 0;

while(c[z]==0)

for(int i = z;i<2*max;i++)}

c++高精度

3樓:匿名使用者

用檔案儲存,分段計算

4樓:理想之芽

之前有寫過一個用string實現的,很類似,你自己做轉換吧

c++階乘計算

5樓:天方之夜譚

這個問題可以這樣理解,數字是由表示數值的字元,和相應的一個排列組成的,而這個字元在通常情況下是由一個字元組成的,比如0~9,a~z,a~z,單是這種表示方法無論如何都是有限制的,因為人為創造的計算機用的單個字元是有限的。那麼可以用一個陣列表示一個數字,而陣列中的一個元素表示一個數字的字元,每個元素同樣可以使用一個陣列來表示,這樣迴圈下去,就成了一個無限大的數字了。但是這樣的數字,在計算過程中,需要自己去考慮符號、進位、借位、溢位、等計算問題。

你所給出的**就是一種這樣的表達形式。

將一個數表示為多個位陣列成的一個陣列(f),乘法按照由低位到高位,當前位(f[j])和某一數(i)相乘,得到一個結果(s),這個結果和當前位的最大值做除法,商為高一位的數值,也就是進位(c),餘數為此位的數值;此時如果高一位的數值仍然大於該位的最大值,繼續做除法,商為更高一位的數值,餘數(s%10)為該位的數值,以此類推。也就是內迴圈所表示的意思。

外迴圈所表示的就是從1開始連續做乘法,一直乘到n。

下邊那個迴圈是將結果輸出。

不過就目前看來你所給出的**,仍然有溢位的問題,最大隻能表示一個3000位的十進位制數字。

c++求大數的階乘要求精確值 5

6樓:匿名使用者

#include

void bigfactorial(int m);//第一位不用

int i,j,carry,k,tmp,lenth=1;//carry表示進位

for (i=2;i<=m;i++)

}printf("%d的階乘:\n      位數:%d\n ",m,lenth);

for(k=lenth;k>=1;k--)printf("%d",a[k]);

}int main()

7樓:匿名使用者

long int fun(int i)

return sum;}

PASCAL乘積最大高精度動態規劃寫法求高手查錯

const maxn 40 maxk 6 vari,j,l longint n,k longint s string f array 0.maxn,0.maxk of int64 a array 0.maxn,0.maxn of int64 begin readln n,k readln s fil...

高精度求組合數後10 位 15

高精度求組合數後10 位 n r分別代表什麼?你沒說清楚。0到9十個數字 的十位陣列合有多少种情況?最高位不能是0,所以最高位有9種組合。最高位佔了乙個數,其它位可以是0,所以第九位有9種組合前兩位佔了兩個數,所以第三位有8種組合。最後一位只剩下1個數,所以末尾只有1種組合所以共有9 9 8 7 6...

c語言大數階乘運算,C語言大數階乘運算

看灰過來了 include int main return 0 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 6227020800 14 87178291200 ...