大整數相乘問題

2021-07-10 18:37:09 字數 1334 閱讀 8188

先把好的部落格貼上 **明天再說。。。

#include#include#includeusing namespace std;

//string型別轉換成int型別

long string_to_num(string str)

//整形數轉換為string型別

string num_to_string(int intvalue)

//在字串str前新增s個零

string stringbeforezero(string str,int s)

if (0 != flag) //最後一為(最高位)判斷,如果有進製則再添一位

result.insert(0,num_to_string(flag));

return result;}

//兩個大整數字串相減,

string stringsubtractstring(string str1,string str2)

str1[prepos]-=1;

}result.insert(0,num_to_string(c));//在result字串最前端插入新生成的單個字元

}return result;}

//分治法大整數乘法實現函式

string intmult(string x,string y)//遞迴函式

}else//第二個數長度大於第乙個數長度的情況}}

if ( x.size() == 1) //資料長度為1時,在前面補乙個0(這裡之所以會出現長度為1的資料是因為前面對資料修剪過)

x=stringbeforezero(x,1);

if (y.size() == 1) //資料長度為1時,在前面補乙個0(這裡之所以會出現長度為1的資料是因為前面對資料修剪過)

y=stringbeforezero(y,1);

if (x.size() > y.size()) //最後一次對資料校正,確保兩個資料長度統一

y = stringbeforezero(y,x.size()-y.size());

if (x.size() < y.size()) //最後一次對資料校正,確保兩個資料長度統一

x = stringbeforezero(x,y.size()-x.size());

int s = x.size();

string a1,a0,b1,b0;

if( s > 1)

string result;

if( s == 2) //長度為2時代表著遞迴的結束條件

else

return result; }

int main()

cout<<"兩數相乘結果為:"<

大整數相乘

一 乘數和被乘數為long型別的 public class bignumberchenglong int pi1 new int getlength p1 int pi2 new int getlength p2 將乘數和被乘數存入陣列中 long temp p1 int num 0 int i 0...

大整數相乘

這是一道經典的上機題目 include include include define n 100 n代表乘數的位數,根據具體應用,想設多大設多大。function 大整數相乘演算法 引數 a 乘數 b 乘數 n a的長度 m b的長度 沒有返回值,結果直接放到全域性變數res陣列中,如果不想要全域性...

大整數相乘

處理大整數相乘的辦法很多,我這裡貼一種最簡單實現,通過字元陣列去接收和輸入大整數。題目要求如下 如下 2015.9.15 華為.cpp 定義控制台應用程式的入口點。include stdafx.h include include define maxlength 1024 define m 100 ...