演算法 高精度運算

2022-01-12 19:18:29 字數 968 閱讀 8526

(本人知識 while(1)cout<

int型別的變數只能存放-2^31~2^31-1範圍的資料

long long型別的變數只能存放-2^63~2^63-1範圍的資料

對於大數階乘這種肯定是存不下,因此我們需要用陣列存放資料;

下面是乙個高精度運算的例子:

用高精度計算出s=1!+2!+3!+…+n! (n≤50)s=1!+2!+3!+…+n!(n≤50)

為了減少迴圈次數以及陣列的長度,這裡使用long long陣列存放資料

1

/**[程式設計入門]階乘求和

*/2 #include3 #include4 #include5

using

namespace

std;6//

存總和,初始化為0,每個long long存15位

7long

long data[10]=;

8long

long t[10]=;//

存i!,初始化為1,否則0的話永遠為0

9int len=10; //

倆陣列的長度

10int

n;11

long

long mymax=pow(10,15

);12

13void myadd()21}

22void mymul(int m)

30}

31void print()

37if(data[i]!=0&&flag==0)41

}42}43

intmain()

50 print();//

列印結果

高精度運算

今天覆習了一下高精度運算。我覺得這種簡單的東西也得看一看,至少給自己留點兒低!高精度可以壓位的,但我今年懶得寫了 首先是加減法很簡單了,沒什麼值得特別強調的。高精度減法時別忘了,a時做下交換在計算,輸出時別忘了標記負號。高精度乘法需要注意的問題是,要在做完乘法之後再調整為十進位制。有的初學者小盆友喜...

高精度運算

雖說高精度直接考查的越來越少,不過還是以防萬一。define maxlen 1000 struct bint 本模板既可輸入字串,也可輸入整數 bint int t if len 1 len bint char str print number friend void print bint bi p...

高精度運算

name 高精度運算 author goal00001111 date 01 12 08 15 04 description 高精度運算 加減乘除,乘方,階乘 include include using namespace std void reverse string str void addin...