演算法筆記 5 6 大整數運算

2021-10-17 08:30:05 字數 786 閱讀 3107

規則:

1、整數的高位存放在陣列的高位,低位存放在陣列的低位

2、輸入字串存放到字元陣列內,正常情況下是高位存放在陣列的低位,低位存放在陣列的高位,因此需要定義函式change()轉換

3、輸出時,逆序輸出,先輸出高位,再輸出低位

#include#include#includeusing namespace std;

const int maxn=10010;

char str[maxn];

struct bign

};//轉換函式

bign change(char str)};

bign change(char str)

減法運算

對每一位,比較被減位和減位,如果不夠減,令被減位的高位減1,被減位加10,如果夠減,直接減,最後去除高位多餘的0,最少保證有一位數

(減之前要比較兩個數的大小,如果a=1&&c.d[c.len-1]==0)

return c;

}減法完整**

#include#includeusing namespace std;

const int maxn=10010;

char str[maxn];

struct bign};

bign change(char str)

return c;}

int main()

參考:

演算法筆記 大整數運算 a b

問題描述 實現乙個加法器,使其能夠輸出a b的值。輸入要求 輸入包括兩個數a和b,其中a和b的位數不超過1000位。關鍵易錯 1.將char型陣列轉換成int型陣列 2.int型陣列的大小應該比1000大,因為兩個數相加可能是1001位。3.考慮a和b的正負問題。includeusing names...

演算法筆記 大整數

對一道a b的題目,如果a和b的範圍在int範圍內,那麼相信大家很快就能寫出程式。但是如果a和b是有著1000個數字的整數,恐怕就沒有辦法用已有的資料型別來表示了,這時就只能老實去模擬加減乘除的過程。解題思路 使用陣列來儲存整數字串,然後低位存放低位,高位存放高位 在進行大整數加減運算的時候,若出現...

超長整數運算(大整數運算)

問題描述 將形如1234567890123456789不能儲存在long變數中的數稱為超長整數或大整數。現討論大整數的加減乘除運算。思想方法 用陣列儲存超長整數,且為處理的簡單起見約定每個元素存放相同位的數字。如 每個元素存放4位。1 加法運算 void add int a,int b,int c ...