規則:
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 ...