長整數的乘法

2021-06-19 17:38:10 字數 1142 閱讀 5797

思路比較簡單但是編寫程式特別容易出錯,思路就是用字串來模擬乘法的計算,錯誤的地方在於,字串的低位恰恰是其代表的長整數的高位

測試用例

#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,因此若用長整型變數做乘法運算,乘積最多不能超過...