亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++實(shí)現(xiàn)大整數(shù)乘法(字符串乘法)

 更新時(shí)間:2019年09月18日 09:37:56   作者:qiuchenl  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)大整數(shù)乘法、字符串乘法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)大整數(shù)乘法的具體代碼,供大家參考,具體內(nèi)容如下

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
 
string add(string a,string b)
{
 if(a.length()==0)
 return b;
 if(b.length()==0)
 return a;
 a.length()<b.length()?a.swap(b):a.length();
 
 reverse(a.begin(),a.end());
 reverse(b.begin(),b.end());
 int flag=0;
 for(int i=0;i<a.length();i++)
 {
 int aInt=a[i]-'0';
 int bInt=0;
 if(i<b.length())
  bInt=b[i]-'0';
 int result=aInt+bInt+flag;
 a[i]=result%10+'0';
 flag=result/10;
 }
 if(flag!=0)
 {
 a=a+(char)(flag+'0');
 }
 reverse(a.begin(),a.end());
 return a;
}
string multiply(std::string strMultiplierA,char x)
{
 int b=x-'0';
 int flag=0;
 for(int i=strMultiplierA.length()-1;i>=0;i--)
 {
 int a=strMultiplierA[i]-'0';
 int result=a*b+flag;
 strMultiplierA[i]=result%10+'0';
 flag=result/10;
 }
 if(flag!=0)
 strMultiplierA=(char)(flag+'0')+strMultiplierA;
 while(strMultiplierA.length()>1&&strMultiplierA[0]=='0')
 strMultiplierA=strMultiplierA.substr(1,strMultiplierA.length());
 return strMultiplierA;
}
 
/*****************************************************************************
 Prototype  : multiply
 Description : 兩個(gè)任意長(zhǎng)度的長(zhǎng)整數(shù)相乘, 輸出結(jié)果
 Input Param : 
        const std::string strMultiplierA 乘數(shù)A
        const std::string strMultiplierB 乘數(shù)B
 Output    : 
        std::string strRst      乘法結(jié)果
 Return Value : 
        int            0 正確 
                     -1 異常
*****************************************************************************/
int multiply (const std::string strMultiplierA,const std::string strMultiplierB, std::string &strRst) 
{
 
  /* 在這里實(shí)現(xiàn)功能 */
  if(strMultiplierA.length()<=0||strMultiplierB.length()<=0)
 return -1;
 bool flag=false;//false"+" true"-"
 string strA=strMultiplierA,strB=strMultiplierB;
 if(strMultiplierA[0]=='-')
 {
 flag=~flag;
 strA=strMultiplierA.substr(1,strMultiplierA.length());
 }
 if(strMultiplierB[0]=='-')
 {
 flag==true?flag=false:flag=true;
 strB=strMultiplierB.substr(1,strMultiplierB.length());
 }
 
 for(int i=strB.length()-1;i>=0;i--)
 {
 string result=multiply(strA,strB[i]);
 int j=i;
 while(++j<strB.length())
  result=result+"0";
 // while(result.length()>1&&result[0]=='0')
 // result=result.substr(1,result.length());
 strRst=add(strRst,result);
 }
 while(strRst.length()>1&&strRst[0]=='0')
 strRst=strRst.substr(1,strRst.length());
 if(flag==true&&strRst!="0")
 strRst='-'+strRst;
  return 0;
}
 
int main()
{
 std::string strResult = "";
 
 multiply("-5489324", "0", strResult);
 
 cout<<strResult<<endl;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++之BOOST字符串查找示例

    C++之BOOST字符串查找示例

    這篇文章主要介紹了C++之BOOST字符串查找的方法,實(shí)例演示了boost針對(duì)字符串的查找、判定及替換等操作,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++實(shí)現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項(xiàng)之二)

    C++實(shí)現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項(xiàng)之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項(xiàng)之二),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • opencv幀差法找出相差大的圖像

    opencv幀差法找出相差大的圖像

    這篇文章主要為大家詳細(xì)介紹了opencv幀差法找出相差大的圖像,包含訪問mat的像素值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++如何實(shí)現(xiàn)廣義表詳解

    C++如何實(shí)現(xiàn)廣義表詳解

    廣義表是非線性結(jié)構(gòu),其定義是遞歸的。那么下面跟著小編一起看看如何用C++實(shí)現(xiàn)廣義表,有需要的可以參考借鑒。
    2016-08-08
  • Qt中QZXing 的編譯與使用

    Qt中QZXing 的編譯與使用

    本文主要介紹了Qt中QZXing 的編譯與使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 一文帶你學(xué)習(xí)C++中的派生機(jī)制

    一文帶你學(xué)習(xí)C++中的派生機(jī)制

    C++是一門面向?qū)ο蟮木幊陶Z(yǔ)言,其中的派生機(jī)制是其重要的面向?qū)ο筇匦灾弧1疚奈覀兙蛠?lái)詳細(xì)地學(xué)習(xí)一下C++中的派生機(jī)制的相關(guān)知識(shí)吧
    2023-04-04
  • C++中用指向數(shù)組的指針作函數(shù)參數(shù)

    C++中用指向數(shù)組的指針作函數(shù)參數(shù)

    多維數(shù)組名作為函數(shù)參數(shù)傳遞:在二維數(shù)組中,數(shù)組名a是指向首行a[0]的指針,也就是說(shuō)a=&a[0]; a[0]是指向首元素a[0][0]的指針,也就是說(shuō)a[0]=&a[0][0]
    2013-10-10
  • c語(yǔ)言中 基于隨機(jī)函數(shù)的使用詳解

    c語(yǔ)言中 基于隨機(jī)函數(shù)的使用詳解

    本篇文章對(duì)c語(yǔ)言的隨機(jī)函數(shù)進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • C++利用PCL點(diǎn)云庫(kù)操作txt文件詳解

    C++利用PCL點(diǎn)云庫(kù)操作txt文件詳解

    這篇文章主要為大家詳細(xì)介紹了C++如何利用PCL點(diǎn)云庫(kù)操作txt文件,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2024-01-01
  • 總結(jié)了24個(gè)C++的大坑,你能躲過幾個(gè)

    總結(jié)了24個(gè)C++的大坑,你能躲過幾個(gè)

    這篇文章主要介紹了總結(jié)了24個(gè)C++的大坑,你能躲過幾個(gè),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2021-05-05

最新評(píng)論