大數運算模板(C語言)

2021-07-15 08:23:59 字數 1719 閱讀 7477

**說明:

//大數相加

#include

#include

#define maxn 100

int an1[maxn+10];

int an2[maxn+10];

char str1[maxn+10];

char str2[maxn+10];

int main()

}//輸出

int pan_0 = 0;

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

}printf("\n");

}return0;}

//大數相減

//改動主要運算過程

for(i=0;iif(an1[i]<0)

}//大數相乘

#include

#include

#define maxn 100

int an1[maxn*2+10];

int an2[maxn+10];

int aresult[maxn*2+10];

char str1[maxn+10];

char str2[maxn+10];

int main()

}//輸出

memset(an1,0,sizeof(an1));

int pan_0 = 0;

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

else

if(aresult[i])

}printf("\n");

memset(str2,0,sizeof(str2));

}return0;}

//大數相除,兩個數

//反覆做減法,能減幾個,商就是幾。

#include

#include

#define maxn 100

int an1[maxn+10]; //被除數

int an2[maxn+10]; //除數

int aresult[maxn+10]; //商

char str1[maxn+10];

char str2[maxn+10];

//substract函式表示an1減去an2,返回結果的長度;不夠返回-1;剛好返回0;

int subtract(int *p1,int *p2,int len1,int len2)}}

//p1不小於p2,做減法

for(i=0;iif(p1[i]<0)

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

if(p1[i])

return i+1;

//一樣大

return0;}

int main()

//情況2

else

if(len1==0)

//情況3

else

}//!!!

len2=len1;

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

}output:

//進製

for(i=0;iif(aresult[i]>=10)

}//輸出

int pan_0 = 0;

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

else

if(aresult[i])

}printf("\n");

}return

0;}

大數運算模板

include include include include using namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignum const int 將乙個int型別的變數轉化為...

C語言大數運算 減法篇

前言 前面介紹了有關的思想,和本片部落格的測試環境,所以作為第二篇的減法篇就不再過多的介紹,直接開始關於大數加法的實現。大數減法 與加法類似,還是將使用者的輸入和結果放入變長的陣列中然後模仿手工運算從低位到高位依次相減,會有三個需要解決的問題,其中前二個和大數加法的問題很相似,所以就不再詳細說明。問...

大數 高精度運算 C語言

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