C++實(shí)現(xiàn)大數(shù)相乘的算法
由于數(shù)字無(wú)法用一個(gè)整形變量存儲(chǔ),很自然的想到用字符串來(lái)表示一串?dāng)?shù)字。然后按照乘法的運(yùn)算規(guī)則,用一個(gè)乘數(shù)的每一位乘以另一個(gè)乘數(shù),然后將所有中間結(jié)果按正確位置相加得到最終結(jié)果??梢苑治龅贸鋈绻藬?shù)為A和B,A的位數(shù)為m,B的位數(shù)為n,則乘積結(jié)果為m+n-1位(最高位無(wú)進(jìn)位)或m+n位(最高位有進(jìn)位)。因此可以分配一個(gè)m+n的輔存來(lái)存儲(chǔ)最終結(jié)果。為了節(jié)約空間,所有的中間結(jié)果直接在m+n的輔存上進(jìn)行累加。
C++實(shí)現(xiàn)大數(shù)相乘代碼如下:
#include<iostream>
#include<string>
using namespace std;
string BigNumMultiply(string str1,string str2)
{
int size1=str1.size(),size2=str2.size();
string str(size1+size2,'0');
for(int i=size2-1;i>=0;--i)
{
int mulflag=0,addflag=0;
for(int j=size1-1;j>=0;--j)
{
int temp1=(str2[i]-'0')*(str1[j]-'0')+mulflag;
mulflag=temp1/10;
temp1=temp1%10;
int temp2=str[i+j+1]-'0'+temp1+addflag;
str[i+j+1]=temp2%10+48;
addflag=temp2/10;
}
str[i]+=mulflag+addflag;
}
if(str[0]=='0')
str=str.substr(1,str.size());
return str;
}
int main()
{
string str1,str2;
while(cin>>str1>>str2)
{
cout<<str1<<"*"<<str2<<"="<<endl;
cout<<BigNumMultiply(str1,str2)<<endl;
}
return 0;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++在C語(yǔ)言基礎(chǔ)之上增強(qiáng)的幾個(gè)實(shí)用特性總結(jié)
這篇文章主要介紹了C++在C語(yǔ)言基礎(chǔ)之上增強(qiáng)的幾個(gè)實(shí)用特性總結(jié),包括C++中更強(qiáng)的類型約束以及結(jié)構(gòu)體方面等一些更加高級(jí)的特性,需要的朋友可以參考下2016-03-03
C語(yǔ)言實(shí)現(xiàn)學(xué)生宿舍信息管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生宿舍信息管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
基于atoi()與itoa()函數(shù)的內(nèi)部實(shí)現(xiàn)方法詳解
本篇文章是對(duì)atoi()與itoa()函數(shù)的內(nèi)部實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易版三子棋游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易版三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
程序員都不知道C語(yǔ)言中的這些小細(xì)節(jié)
本文通過(guò)7到實(shí)例題目給大家展示C語(yǔ)言中的一些小細(xì)節(jié),很少有朋友真正的掌握,感興趣的朋友跟隨小編一起看看吧2021-05-05
C語(yǔ)言數(shù)組入門(mén)之?dāng)?shù)組的聲明與二維數(shù)組的模擬
這篇文章主要介紹了C語(yǔ)言數(shù)組入門(mén)之?dāng)?shù)組的聲明與二維數(shù)組的模擬,數(shù)組學(xué)習(xí)的同時(shí)也要相應(yīng)理解C語(yǔ)言指針的作用,需要的朋友可以參考下2015-12-12

