最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++使用string的大數(shù)乘法運算(3)

 更新時間:2019年09月18日 11:04:56   作者:好想告訴你wt  
這篇文章主要為大家詳細(xì)介紹了C++使用string的大數(shù)乘法運算,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本次項目目標(biāo):使用C++完成對于大數(shù)的乘法運算,供大家參考,具體內(nèi)容如下

項目要點

1.大數(shù)指的是遠(yuǎn)超long long int的數(shù)據(jù)

2.將大數(shù)用矩陣進(jìn)行存儲,并通過矩陣實現(xiàn)運算

3.本人采用字符串進(jìn)行存儲,應(yīng)注意char的特點

比如:char a=161;

cout<<(int)a;

此時會輸出-95,而不是161,char類型首個比特位是作為正負(fù)號的

乘法,此處為整數(shù)乘法,正整數(shù),負(fù)整數(shù),0均可,主要思想就是乘法的筆算方法

運行截圖及代碼如下:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)//用來去掉正數(shù)前面的0,也就是說可以輸入000001類似這樣的數(shù)字
{
 long int i;
 for(i=0;i<a.length();i++)
 {
 if(a.at(i)>48) break;
 }
 if(i==a.length()) return "0";
 a.erase(0,i);
 return a;
}
string multiply(string a,string b)//整數(shù)
{
 long int i,j,k,yao=0,kai;
 string c1,c2;
 string c3=a+b;
 if(a.at(0)=='-')
 {
 a.erase(0,1);
 yao++;
 }
 if(b.at(0)=='-')
 {
 b.erase(0,1);
 yao++;
 }
 a=dezero(a);
 b=dezero(b);
 if(a.at(0)==48||b.at(0)==48) return "0";
 if(a.length()>b.length())
 {
 c1=a;
 c2=b;
 }
 else
 {
 c1=b;
 c2=a;
 }
 reverse(c1.begin(),c1.end());
 reverse(c2.begin(),c2.end());
 for(i=0;i<c2.length();i++)
 {
 if(c2.at(i)>=48&&c2.at(i)<=57) c2.at(i)-=48;
 if(c2.at(i)>=97&&c2.at(i)<=122) c2.at(i)-=87;
 }
 for(i=0;i<c1.length();i++)
 {
 if(c1.at(i)>=48&&c1.at(i)<=57) c1.at(i)-=48;
 if(c1.at(i)>=97&&c1.at(i)<=122) c1.at(i)-=87;
 }
 for(i=0;i<c3.length();i++) c3.at(i)=0;
 for(i=0;i<c2.length();i++)
 {
 for(j=0;j<c1.length();j++)
 {
 kai=c2.at(i)*c1.at(j);
 c3.at(i+j+1)+=kai/n;
 c3.at(i+j)+=kai%n;
 for(k=i+j;k<c3.length()-1;k++)
 {
 if(c3.at(k)>=n) 
 {
  c3.at(k+1)+=c3.at(k)/n;
  c3.at(k)=c3.at(k)%n;
 }
 else
 {
  break;
 }
 }
 }
 }
 for(i=c3.length()-1;i>=0;i--)
 {
 if(c3.at(i)>0) break;
 }
 c3.erase(i+1,c3.length());
 for(i=0;i<c3.length();i++)
 {
 if(c3.at(i)>=10) c3.at(i)+=87;
 if(c3.at(i)<10) c3.at(i)+=48;
 }
 reverse(c3.begin(),c3.end());
 if(yao==1) c3="-"+c3;
 return c3;
}
int main()
{
 string a,b;
 while(cout<<"input:"&&cin>>a>>b)
 {
 cout<<"output:"<<multiply(a,b)<<endl;
 }
 return 0;
}

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

相關(guān)文章

  • 淺談C++11中的幾種鎖

    淺談C++11中的幾種鎖

    本文主要介紹了C++11中的幾種鎖,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Qt6子窗口全屏顯示的實現(xiàn)示例

    Qt6子窗口全屏顯示的實現(xiàn)示例

    在Qt開發(fā)中,有時候需要讓程序窗口全屏顯示,本文主要介紹了Qt6子窗口全屏顯示的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • C++使用遞歸函數(shù)和棧操作逆序一個棧的算法示例

    C++使用遞歸函數(shù)和棧操作逆序一個棧的算法示例

    這篇文章主要介紹了C++使用遞歸函數(shù)和棧操作逆序一個棧的算法,結(jié)合實例形式分析了C++遞歸函數(shù)與逆序棧的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C語言實現(xiàn)帶頭雙向循環(huán)鏈表

    C語言實現(xiàn)帶頭雙向循環(huán)鏈表

    本文主要介紹了C語言實現(xiàn)帶頭雙向循環(huán)鏈表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言中的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換

    C語言中的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換

    這篇文章主要介紹了C語言中的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C語言解讀數(shù)組循環(huán)右移問題

    C語言解讀數(shù)組循環(huán)右移問題

    這篇文章主要介紹了C語言解讀數(shù)組循環(huán)右移問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++-操作符重載、并實現(xiàn)復(fù)數(shù)類詳解

    C++-操作符重載、并實現(xiàn)復(fù)數(shù)類詳解

    這篇文章主要介紹了C++-操作符重載、并實現(xiàn)復(fù)數(shù)類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 基于C++實現(xiàn)去除字符串頭尾指定字符功能

    基于C++實現(xiàn)去除字符串頭尾指定字符功能

    編程時我們經(jīng)常需要對字符串進(jìn)行操作,其中有一項操作就是去除字符串的頭(尾)指定的字符,比如空格。本文為大家詳細(xì)介紹了如何利用C++實現(xiàn)這一效果,需要的可以參考一下
    2022-04-04
  • C++實現(xiàn)俄羅斯方塊小游戲

    C++實現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺析C語言調(diào)試器GDB和LLDB的使用方法

    淺析C語言調(diào)試器GDB和LLDB的使用方法

    這篇文章主要介紹了C語言調(diào)試器GDB和LLDB的使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12

最新評論

潼南县| 曲周县| 嘉定区| 安图县| 鲜城| 囊谦县| 平凉市| 新乡县| 云霄县| 房山区| 沂源县| 佛坪县| 吴江市| 开远市| 汶川县| 平山县| 宜阳县| 乐业县| 且末县| 永和县| 沧源| 永吉县| 苍梧县| 彭水| 台安县| 涿州市| 庆元县| 泗洪县| 左权县| 博野县| 罗江县| 巴楚县| 华阴市| 个旧市| 江门市| 华蓥市| 沾益县| 泗水县| 新平| 巩义市| 屏东市|