大數加減乘除及模運算

2021-08-15 07:41:40 字數 1405 閱讀 1382

自己寫的**,測試了幾組測試樣例,都沒什麼問題,**如下:

#define _crt_secure_no_deprecate

#include #include #include#includeusing namespace std;

const int maxn = 3000000 + 80;

const int m = 2000000;

const int wei = 100;

void get(int *a, int *b)

//統計數有多少位

int cal(long long n)

return sum;

}//大數有多少位

int cal(int *n)

//列印大數

void prin(int *an1)

//大數大小比較

int compare(int *an1, int *bn1)

} }return 0;

}//把大數初始化為零

void chushihua(int *n)

//大數加正常數

void jia(int *an1, int bn1, int *cn1)

for (int i = 0; i= 10)

for (int i = 0; i= 10)

for (int i = 0; i= 10)

for (int i = 0; i= 10) }

//大數乘大數

void chen(int *an1, int *bn1, int *cn1)

for (int i = 0; i < wei - 1; i++)

if (cn1[i] >= 10) }

//大數除大數

void chu(int *a, int *b, int *c)

while (compare(a, temp) != -1)

}// cout << "1asd " << c[0] << " " << c[1] << " " << c[2] << endl;

for (int i = 0; i= 10)

// cout << "1asd " << c[0] << " " << c[1] << " " << c[2] << endl;

}//大數模大數

void mod(int *a, int *b, int *c)

int main(){

int a1[wei], b1[wei], c1[wei];

char ch1[wei], ch2[wei];

while (cin >> ch1>>ch2 )

{ for (int i = 0; i < wei; i++)

a1[i] = b1[i] = c1[i] = 0;

for (int i = 0; i

大數運算(加減乘除)

加法 void add char a,char b,char d for i len i 1 i if c i 48 len else break for i 0 i len i d i c len i view code 減法1 d2 d1,如果需要比較大小自己加乙個不麻煩。void dec ch...

大數運算 加減乘除

大數運算產生的原因就是因為int,double型別表示範圍都有限,無法表示過長的數字比如 2345468454567865415467864453437。因此也就無法進行四則運算,為了實現這種運算,大數運算產生了。其實也很簡單,既然基本資料型別放不下這些資料,那就用陣列存放唄。定義char c 10...

大數運算 (加減乘除)

大數加減乘除應該都不陌生了吧,原來只寫過大數加法,弱弱的我重溫了一下這種,發現還是蠻有意思的。不知道有沒有感覺到,解決這類問題進製思路都挺簡單的,主要錯的地方就是最後細節的處理,前導0的去除,型別轉換等之類的問題。都是按整數輸入資料 沒有考慮小數點之類的輸入和負數的情況。大數加法 hdu1002 l...