思路比較簡單但是編寫程式特別容易出錯,思路就是用字串來模擬乘法的計算,錯誤的地方在於,字串的低位恰恰是其代表的長整數的高位
測試用例
#include
#include "cexampletest.h"
#include
#include
#include
extern char* longintegermul(char* pnum1, char *pnum2);
// 註冊測試套到cppunit
cppunit_test_suite_registration( cexampletest );
// setup: 在每個用纈前執gg一次
void cexampletest::setup()
// teardown: 在每個用纈後執gg一次
void cexampletest::teardown()
/* ----------用纈------------- */
void cexampletest::testcase01_1()
else
return;
}程式如下
#include
#include
#include
/*詳細描述:
char* longintegermul(char* pnum1, char *pnum2);
輸入引數:
char* pnum1:使用字串表示的長整數1
char* pnum2:使用字串表示的長整數2
輸出引數(指標指向的記憶體區域保證有效):
無。返回值:
char*:使用字串表示結果整數,
記憶體動態申請記憶體儲存結果,外部呼叫者釋放。
*/#include
using namespace std;
int mulchar(char a,char b)
char charplus(char* str, int pos,int adder)
return ('0'+(num%10)); //此處的num已經不是原來的num了
}char* longintegermul(char* pnum1, char *pnum2)}}
return str;
}
長整數加法
2.15 長整數加法 問題描述 輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。演算法描述 由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。同樣可以用乙個陣...
大整數的乘法
include include 乙個陣列元素表示4 個十進位制位,即陣列是萬進製的 define bigint radix 10000 超過1萬進1,模擬10進製,一位就是乙個數字,超過10進1 define radix len 4 每個元素表示4位 define max len 200 radix...
大整數乘法
參考 http hi.baidu.com operationsystem blog item 6e45dd1af1acadf3ae51330b.html 在計算機中,長整型 long int 變數的範圍是 2147483648 至 2147483647,因此若用長整型變數做乘法運算,乘積最多不能超過...