c 陣列大數板子

2021-09-29 17:21:54 字數 3194 閱讀 3924

int compare(const char *a,int len1,const char *b,int len2)

while

(i>=0)

while

(j>=0)

if(jin)s[k++

]= jin +

'0';

for(

int j =

0;j < k/

2;j++

)swap

(s[j]

,s[k-j-1]

);

s[k]

='\0'

;}

複雜度

o(n)

複雜度o(n)

複雜度o(n

)

void

sub(

const

char

*a,int len1,

const

char

*b,int len2,

char

*c)else

i--;j--;}

while

(i >=0)

else

i--;}

j =0;

for(

int i =

0;i < len1;i++)}

if(!j)else

}

複雜度

o(n∗

m)

複雜度o(n*m)

複雜度o(n

∗m)

void

mul(

const

char

*a,int len1,

const

char

*b,int len2,

char

*c);

//比較大的時候可以放外面

//必須int,char存的可能會爆(一位元組)

for(

int i =

0;i < len1;i++)}

for(

int i = len1 + len2 -

1;i >

0;i--

)int cnt =0;

for(

int i =

0;i < len1 + len2;i++)if

(!cnt)c[cnt++]=

'0';

//答案為0,得處理一下

c[cnt]

='\0'

;}

複雜度

o(n2

)(估計

)複雜度o(n^2)(估計)

複雜度o(n

2)(估

計)

int

del(

char

*a,int len1,

const

char

*b,int len2,

char

*c)}

if(clen<0)

return len1;

int i = clen,j =0;

while

(i a[i]

= a[i]

- b[j]

+'0'

; i++

,j++;}

c[clen]++;

while

(a[len1-1]

=='0'

)len1--

; a[len1]

='\0';if

(len1<=

0)len1 =1;

//cout << a }int

div_compare

(char

*a,int len1,

char

*b,int len2)

}return0;

}void

div(

char

*a,int len1,

char

*b,int len2,

char

*c)while

(clen&&c[clen-1]

==0)clen--

;//去0if(

!clen)c[clen++]=

0;for(

int i =

0;i < clen;i++

)c[i]+=

'0';

//轉換為字串

for(

int i =

0;i < clen/

2;i++

)swap

(c[i]

,c[clen-i-1]

);//逆序

//如果要求餘數,對a取一下前導0,倒置過來.

c[clen]

='\0'

;}

複雜度

o(n)

複雜度o(n)

複雜度o(n

)

void

div(

const

char

*a,int len1,ll b,

char

*c)else

if(f)c[cnt++]=

'0';}if

(!cnt)c[cnt++]=

'0';

c[cnt]

='\0'

;}

複雜度

o(n)

複雜度o(n)

複雜度o(n

)

void

mul(

const

char

*a,int len1,ll b,

char

*c)while

(ans)

for(

int i =

0;i < cnt/

2;i++

)swap

(c[i]

,c[cnt-

1-i]);

c[cnt]

='\0'

;}

複雜度

o(n)

複雜度o(n)

複雜度o(n

)

void

mod(

const

char

*a,int len1,ll p,ll &ans)

}

c 大數板子

include include include include using namespace std typedef long long ll 完全大數模板 輸出cin a 輸出a.print 注意這個輸入不能自動去掉前導0的,可以先讀入到char陣列,去掉前導0,再用建構函式。by kuangb...

C 大數板子

include 大整數 struct biginteger biginteger const std string x biginteger const biginteger x 剪掉前導0 void cutleadingzero 設定數的長度 void setlength else 賦值運算子 b...

高精大數板子

include include include include using namespace std typedef long long ll 完全大數模板 輸出cin a 輸出a.print 注意這個輸入不能自動去掉前導0的,可以先讀入到char陣列,去掉前導0,再用建構函式。by kuangb...