sincerit 大數加減乘除

2021-09-01 12:41:38 字數 2794 閱讀 8368

簡單大數加法

#include

#include

#include

using namespace std;

char p[

100]

=, q[

100]=;

// 大數加法--可以實現連加 p+q

// 大數p, q相加 再把結果放在p

void

add(

char

* p,

char

* q)

// 假如這個數更長,更短的話不用考慮

while

(q[j]

!='\0'

)// p[k]要是原來有數還要再加上本身這個數,再考慮進製

while

(t)}

intmain()

簡單大數減法, 預設大數p大於等於q,答案放在p裡可以實現連減

#include

#include

#include

using namespace std;

char p[

100]

=, q[

100]=;

// 大數減法--可以實現連減 p-q

void

sub(

char

* p,

char

* q)

,k =0;

// 借助整數會更好寫,字元不好處理借位的

for(i =

0; p[i]

!='\0'

; i++

) ans[i]

=(p[i]

-'0');

for(i =

0,j =

0; p[i]

!='\0'

&& q[j]

!='\0'

; i++

,j++

) k++;}

while

(ans[k]==-

1)k++

; i++;if

(ans[k]

>=0)

break;}

while

(p[i]

!='\0'

)// 使k等於原來的長度

// 開始去後導0

while

(ans[k-1]

==0&& k-

1>=

0) k--

;for

(i =

0; i < k; i++

) p[i]

= ans[i]

+'0'

; p[i]

='\0';}

intmain()

簡單大數乘法

#include

#include

#define max 1000

// 大數的最大位數

intmultiplication

(char num1,

char num2,

int sum)

;int b[max+10]

=;int c[max*2+

10]=;

len1 =

strlen

(num1)

; len2 =

strlen

(num2)

;for

(j =

0, i = len1-

1; i >=

0; i--

)//把數字字元轉換為整型數 並且倒過來低位在前

a[j++

]= num1[i]

-'0'

;for

(j =

0, i = len2-

1; i >=

0; i--

) b[j++

]= num2[i]

-'0'

;for

(i =

0; i < len2; i++)}

for(i =

1; i < max*

2; i++)}

len = max*2;

while

(c[len]==0

&& len >=

1) len--

;//跳過高位的0

for(

; i >=

1; i--

) sum[i]

= c[i]

;return len;

}int

main()

;// 存放計算的結果,低位在前,高位在後,即sum[0]是低位

char num1=

"12"

;// 第乙個大數

char num2=

"12"

;// 第二個大數

len =

multiplication

(num1, num2, sum)

;// 輸出結果

printf

("%s * %s = \n"

, num1, num2)

;for

(i = len; i >=

1; i--

)printf

("%d"

, sum[i]);

printf

("\n");

return0;

}

大數加減乘除

include include include include includeusing namespace std compare比較函式 相等返回0,大於返回1,小於返回 1 int compare string str1,string str2 if cf 0 str char cf 0 st...

大數加減乘除

對於大數的加減乘除都要先把輸入的大數字串轉成倒序的陣列,再進行運算。字串的處理 scanf s s a1,b1 len 0 for int i strlen a1 1 i 0 i len 0 for int i strlen b1 1 i 0 i len max strlen a1 strlen b...

大數的加減乘除

當數的位數非常大而常規的資料型別不足以儲存的時候,可以考慮使用大數。即用乙個長的陣列來儲存相應的位數,如int a 100 a的每一位儲存一位數字或幾位數字,根據常規的加減乘除運算對陣列進行操作。使用string型別對陣列進行操作,雖然比用整型簡便,但可 能增加了執行時間。pku1001 expon...