大數(shù)相乘算法

1、計(jì)算兩個(gè)大數(shù)相乘的結(jié)果楚午。
2、算法流程:
(1)大數(shù)可能超出任何一種整數(shù)類型尿招,會(huì)引發(fā)溢出問(wèn)題矾柜,所以用字符串的格式存儲(chǔ)數(shù)a,b;
(2)計(jì)算字符串a(chǎn)的的長(zhǎng)度aLen即位數(shù),計(jì)算字符串b的長(zhǎng)度bLen.
(3)兩個(gè)數(shù)相乘最大為aLen+bLen,整形sumLen=aLen+bLen;
(4)聲明字符數(shù)組maxArr用于保存a,b中的更大者泊业,聲明整形maxLen保存a,b長(zhǎng)度的更大者把沼。聲明字符數(shù)組minArr用于保存a,b中的更小者啊易,聲明整形minLen保存a,b長(zhǎng)度的更小者吁伺。如下所示:


image.png

(5)創(chuàng)建整形數(shù)組sumArr用于保存相乘后的結(jié)果,創(chuàng)建整形數(shù)組tmpArr保存數(shù)a的某一位與數(shù)b各位相乘的結(jié)果租谈,如下所示:


image.png

(6)更小的數(shù)minArr的各位(個(gè)位篮奄,十位,百位割去,千位等)依次和更大數(shù)minArr的各位相乘并存儲(chǔ)在臨時(shí)數(shù)組tmpArr中
image.png

3窟却、具體代碼:

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
 char* a="9999999";
 char* b="9999999";
 int aLen=strlen(a);
 int bLen=strlen(b);
 int sumLen=aLen+bLen;
 cout << "aLen="<<aLen<<" bLen="<<bLen<<<< "sumLen="<<sumLen<<endl;
 int minLen=0,maxLen=0;
 char* maxArr,minArr;

 if(aLen>bLen){
    maxArr=a;
    minArr=b;
    maxLen=aLen;
    minLen=bLen;
 }else{
     maxArr=b;
     minArr=a;
     maxLen=bLen;
     minLen=aLen;
 }

 int* sumArr=new int[sumLen];
 int* tmpArr=new int[sumLen];

 for(int i=0;i<sumLen;i++){
    sumArr[i]=0;
    tmpArr[i]=0;
 }

 int mulJin=0,addJin=0;

 for(int i=minLen-1;i>=0;i--){
    int k=--sumLen; 
    for(int j=maxLen-1;j>=0;j--){
        tmpArr[k]=((maxArr[j]-'0')*(minArr[i]-'0')+mulJin)%10;
        mulJin=((maxArr[j]-'0')*(minArr[i]-'0')+mulJin)/10;
        k--;
    }
    if(mulJin>0){
        tmpArr[k]=mulJin;
    }
    mulJin=0;
    for(int i=aLen+bLen-1;i>=0;i--){
    int tmp=(sumArr[i]+tmpArr[i]+addJin);
    sumArr[i]=tmp%10;
    addJin=tmp/10;
    }
    addJin=0;

    for(int i=0;i<aLen+bLen;i++){
      tmpArr[i]=0;
    }

}

 int t=0;
 while(true){
    if(sumArr[t]==0){
        t++;
    }else{
       break;
    }
 }
 for(;t<aLen+bLen;t++){
   cout << sumArr[t];
 }

return 0;}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市呻逆,隨后出現(xiàn)的幾起案子夸赫,更是在濱河造成了極大的恐慌,老刑警劉巖咖城,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茬腿,死亡現(xiàn)場(chǎng)離奇詭異呼奢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)切平,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門握础,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人悴品,你說(shuō)我怎么就攤上這事禀综。” “怎么了苔严?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵定枷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我邦蜜,道長(zhǎng)依鸥,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任悼沈,我火速辦了婚禮贱迟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘絮供。我一直安慰自己衣吠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布壤靶。 她就那樣靜靜地躺著缚俏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贮乳。 梳的紋絲不亂的頭發(fā)上忧换,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音向拆,去河邊找鬼亚茬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浓恳,可吹牛的內(nèi)容都是我干的刹缝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颈将,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梢夯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起晴圾,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤颂砸,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體人乓,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梗醇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撒蟀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叙谨。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖保屯,靈堂內(nèi)的尸體忽然破棺而出手负,到底是詐尸還是另有隱情,我是刑警寧澤姑尺,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布竟终,位于F島的核電站,受9級(jí)特大地震影響切蟋,放射性物質(zhì)發(fā)生泄漏统捶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一柄粹、第九天 我趴在偏房一處隱蔽的房頂上張望喘鸟。 院中可真熱鬧,春花似錦驻右、人聲如沸什黑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)愕把。三九已至,卻和暖如春森爽,著一層夾襖步出監(jiān)牢的瞬間恨豁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工爬迟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橘蜜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓雕旨,卻偏偏與公主長(zhǎng)得像扮匠,于是被迫代替她去往敵國(guó)和親捧请。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凡涩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,183評(píng)論 1 44
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)疹蛉,也就是一...
    悟名先生閱讀 4,148評(píng)論 0 13
  • 這幾年因?yàn)楣ぷ鞯年P(guān)系活箕,經(jīng)常需要認(rèn)識(shí)各行各業(yè)的人,所謂的社交量大大增強(qiáng)可款。于我而言常常痛苦不堪育韩,因?yàn)榕c對(duì)方見(jiàn)面之后常常...
    卿云小有閱讀 903評(píng)論 0 0
  • 忙完村里白天的各項(xiàng)事務(wù)克蚂,晚飯吃罷,已近19點(diǎn)筋讨。飯后休憩間埃叭,聽(tīng)聞村副書(shū)記與村主任通電話商討晚上群眾會(huì)事宜,引...
    周昱燃閱讀 526評(píng)論 0 0
  • 今天收到的主題是“朋友”悉罕,看到題目時(shí)會(huì)心一笑赤屋,心中有千言萬(wàn)語(yǔ),臨下筆卻不知道寫什么壁袄,像個(gè)空有一肚貨的悶茶壺类早,那就想...
    四日閱讀 148評(píng)論 3 3