標籤: 演算法
你的任務是完成一條能實現加法功能的單向鍊錶,需要實現的函式在標頭檔案已給出。
假如現在有 123 與 234 兩個數字,那麼他們在鍊錶中的儲存結構將會是 : 3->2->1與 4->3->2
注意到這裡的鍊錶只允許從前端插入,你也可以把這個特殊的鍊錶當做棧來處理。
輸入的數字不會有負數且不會有前導0的輸入。也就是說,輸入的數字中不會出現0,更不會有0001這樣的輸入
#include "listadd.hpp"
using
std::cout;
using
std::endl;
using
std::cin;
int main()
#ifndef _list_add_
#define _list_add_
#include
using std::string;
using std::ostream;
class list
};node* head;
int _size;
public:
list();
list(const list& other);
list(const
string & num);
void clear();
void push_front(int val); // 在頭部插入數值
list operator+(const list& other); //在這裡進行鍊錶加法實現
list& operator=(const list& other); // 賦值操作過載
int size() const;
~list();
friend ostream& operator
<<(ostream & os, const list & out);
// 輸出數字,無需換行
};#endif
#include "listadd.hpp"
list::list()
list::list(const list& other)
head = 0;
_size = 0;
for (int i = 0; i < other._size; i++)
push_front(num[i]);
delete num;
}list::list(const
string& num)
void list::clear()
_size = 0;
}void list::push_front(int val)
list list::operator+(const list& other)
while (c1 != 0)
addnum[i] = carry + 48;
} else
while (c1 != 0)
addnum[i] = carry + 48;
} if (addnum[max] == '1') else
delete addnum;
return result;
}list& list::operator=(const list& other)
head = null;
_size = 0;
for (int i = 0; i < other._size; i++)
push_front(num[i]);
while (temp != 0)
delete num;
return *this;
}int list::size() const
list::~list()
ostream& operator<<(ostream& os, const list& out)
os << num;
delete num;
return os;
}
大數乘法 大數加法實現
include include include include include include include include using namespace std 實現兩個數的加法 判斷乙個字串是否為有效的數 bool isvalidnumber const string s if 1 len ...
大數加法(C 實現)
問題 1513 藍橋杯 演算法提高vip 大數加法 題目描述 輸入兩個正整數a,b,輸出a b的值。輸入兩行,第一行a,第二行b。a和b的長度均小於1000位。輸出一行,a b的值。樣例輸入 4 2樣例輸出 6 includeusing namespace std typedef long long...
大數加法順序表及鏈式表的實現
資料結構作業一 大數加法的順序表 陣列 實現 include using namespace std const int maxn 5000 大整數最大精度 class big int 大整數類 構造一 big int big int a 建構函式 big int 析構 big int operat...