最近学习Coursera上的算法课,刚开始接触分治算法(Divide & Conquer),第一周的测试题为两个大位整数的乘法,结合自己自学的弱爆的C++,各种查资料还调了一整天的Bug才写出来个不完整的东西。只怪自己平时代码敲得少,不熟练。很多bug遇到过就会对此很敏感,所以多去造轮子,多尝试自己去实现才是最快的学习方法。哈哈哈,一堆废话,自勉之~
下面是自己写的源码,其中还有许多不妥的地方,第一次写(捂脸跑~)完好兴奋呀。。。
#include <stdio.h>
#include <iostream>
#include <list>
#include <iterator>
#include <string>
using namespace std;
void PrintList(list<char>& m);
void PrintMenu();
list<char> TransForm(string &s);
list<char> BigAdd(list<char>&a, list<char>&b);
list<char> BigSub(list<char>&a, list<char>&b);
list<char> BigMul(list<char>&a, list<char>&b);
void BigDev(); 大数除法,没实现
int main(int argc, char *argv[])
{
list<char> num1, num2;
list<char> result;
char choice;
string input1, input2;
while (true)
{
cout << "**********************************" << endl;
cout << " 大整数计算器 VER1.0 " << endl;
cout << "**********************************" << endl;
PrintMenu();
result.clear();
cin >> choice;
fflush(stdin);
switch (choice)
{
case '1':
cout << "请输入第一个数 " << endl;
cin >> input1;
num1 = TransForm(input1);
cout << "请输入第二个数 " << endl;
cin >> input2;
num2 = TransForm(input2);
result = BigAdd(num1, num2);
PrintList(num1);
cout << " + ";
PrintList(num2);
cout << &