高精度運算模版C語言

2021-06-29 02:56:09 字數 1923 閱讀 9115

#include#include#include#include#define maxx 100

using namespace std;

//高精度加法:

void add(char *s1,char *s2)

,b[maxx+10]=;

int l1=strlen(s1);

int l2=strlen(s2);

for(i=l1-1,j=maxx;i>=0;i--,j--)

a[j]=s1[i]-'0';

for(i=l2-1,j=maxx;i>=0;i--,j--)

b[j]=s2[i]-'0';

for(i=maxx;i>=0;i--)

int temp=0;

for(i=0;i<=maxx;i++)

puts("");

}//高精度減法

void sub(char *s1,char *s2)

,b[maxx+10]=,c[maxx+10]=;

int l1=strlen(s1);

int l2=strlen(s2);

for(i=l1-1,j=maxx;i>=0;i--,j--)

a[j]=s1[i]-'0';

for(i=l2-1,j=maxx;i>=0;i--,j--)

b[j]=s2[i]-'0';

for(i=maxx;i>=0;i--) }

int temp=0;

for(i=0;i<=maxx;i++)

puts("");

}//高精度乘法

void mul(char *s1,char *s2)

,b[maxx+10]=,c[2*maxx+10]=;

int l1=strlen(s1);

int l2=strlen(s2);

for(i=l1-1,j=0;i>=0;i--)

a[j++]=s1[i]-'0';

for(i=l2-1,j=0;i>=0;i--)

b[j++]=s2[i]-'0';

for(i=0;i=10)

int t=0;

for(i=maxx*2;i>=0;i--)

if(t)

printf("%d",c[i]);

else if(c[i])

if(!t) printf("0");

puts("");

}//高精度除法

#include#include#include#include#define maxx 100

using namespace std;

int an1[maxx+10],an2[maxx+10];

int ans[maxx+10];

/* sun函式:長度為 l1的大整數p1減去長度為l2的大整數p2,減的結果放在p1裡,返回值

代表結果的長度

*/int sub(int *p1,int *p2,int l1,int l2)

} for(i=l1-1;i>=0;i--)

if(p1[i])

return i+1;

return 0;

} int main()

} l2=l1;

for(j=0;j<=ntimes;j++)

} outputresult:

//下面的迴圈統一處理進製問題

for(i=0;i=10)

} bool t=false;

for(i=maxx;i>=0;i--)

if(t) printf("%d",ans[i]);

else if(ans[i])

if(!t)

printf("0\n");

printf("\n");

return 0;

}

C語言的高精度運算

大整數加法詳情 實現思路 首先要解決的就是儲存200位整數的問題。顯然,任何c c 固有型別的變數都無法儲存它。最直觀的想法是可以用乙個字串來儲存它。字串本質上就是乙個字元陣列,因此為了程式設計更方便,我們也可以用陣列unsigned an 200 來儲存乙個200位的整數,讓an 0 存放個位數,...

大數 高精度運算 C語言

鴿了這麼多天,今天來學學acm的入門知識 高精度 也就是數字位數太多需要我們自己定義來表示 我們可以直接用陣列,或者將值和數的長度封裝成結構體來表示 include include define maxn 100000 typedef struct bignum bignum 那我們知道大數不能和其...

C 高精度運算

高精度加法vector int add vector int a,vector int b if t c.push back 1 return c 高精度減法 判斷a b 的大小,保證函式裡面是大的減小的 bool cmp vector int a,vector int b vector int a...