高精度加減乘除學習筆記

2021-10-09 12:23:06 字數 2928 閱讀 7302

#include

using

namespace std;

char s1[

505]

,s2[

505]

;int a1[

505]

, a2[

505]

, a3[

505]

;int t1, t2, t3;

inline

void

init()

void

work()

//進行豎式加法運算然後注意進製操作

while

(a3[t3]==0

&& t3 >

1) t3--

;//去除前導零

for(

int i=t3;i>0;

--i)

printf

("%d"

, a3[i]);

//倒序輸出答案即可

}int

main()

不考慮帶負號的情況。

#include

using

namespace std;

char s1[

10090

], s2[

10090

], s3[

10090];

int a[

10090

], b[

10090

], c[

10090

], la, lb, lc;

bool flag =0;

inline

bool

compare

(char a,

char b)

return

true;}

inline

void

init()

//若小減大則進行標記後交換相減

la =

strlen

(s1)

; lb =

strlen

(s2)

;for

(int i=

0;i++i) a[la - i]

= s1[i]

-'0'

;for

(int i=

0;i++i) b[lb - i]

= s2[i]

-'0'

; lc =

max(la, lb);}

inline

void

work()

c[i]

= a[i]

- b[i];}

//核心**

while

(c[lc]==0

&& lc >

1) lc--;if

(flag) cout <<

'-';

for(

int i=lc;i>=1;

--i) cout << c[i];}

intmain()

同樣不考慮帶符號的情況

#include

using

namespace std;

#define maxn 100089

char s1[maxn]

, s2[maxn]

, s3[maxn]

;int a[maxn]

, b[maxn]

, c[maxn]

, la, lb, lc;

inline

void

init()

void

work()

}//核心**

while

(c[lc]==0

&& lc >

1) lc--

;for

(int i=lc;i>0;

--i) cout << c[i];}

intmain()

關於高精度乘法加法的組合應用可以做一下洛谷的p1009 階乘之和。作為乙個簡單的無負數的高精度練習題還是可以練練手的。

**:

#include

using

namespace std;

int a[

505]

, s[

505]

, xy[

505]

, n;

intmain()

while

(xy[xy[0]

+1]>0)

a[0]

= xy[0]

;for

(int i=

1;i<=a[0]

;++i) a[i]

= xy[i]

;// for (int i=xy[0];i>=1;--i) cout << xy[i];

// cout << endl;

memset

(xy,0,

sizeof

(xy));

xy[0]

= a[0]

;for

(int i=

1;i<=a[0]

;++i)

while

(xy[xy[0]

+1]>0)

for(

int i=

1;i<=xy[0]

;++i) s[i]

= xy[i]

; s[0]

= xy[0]

;memset

(xy,0,

sizeof

(xy));

}for

(int i=s[0]

;i>=1;

--i) cout << s[i]

;return0;

}

高精度加減乘除

一。高精度乘法 敲了好久。頭禿 str1,str2是存數字的字串,返回最後的位數,c儲存結果 int highmult char str1,char str2,int c b len2 1 int i,j memset a,0,sizeof a memset b,0,sizeof b memset ...

高精度演算法,加減乘除

高精度演算法的兩個基本問題 高精度數的表示和高精度數的基本運算 1.高精度數的表示 首先我想到的是do while 迴圈逆序存放在陣列之中,但書中用string接受並且將其轉化成數字,存放在陣列之中 int arr 100 string str cin str int len str.length ...

高精度加減乘除模板

include include include using namespace std const int power 1 每次運算的位數為10的power次方,在這裡定義為了方便程式實現 const int base 10 10的power次方。要壓位的時候,只需改power 和 base即可,如...