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

C++使用string的大數(shù)加法運算(1)

 更新時間:2020年05月27日 11:58:28   作者:好想告訴你wt  
這篇文章主要為大家詳細介紹了C++使用string的大數(shù)加法運算,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

項目要點

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

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

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

比如:

char a=161;

cout<<(int)a;

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

加法,此處只做自然數(shù)加法,因為存在負整數(shù)的話可以使用自然數(shù)減法來處理

運行截圖及代碼如下:

#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 add(string a,string b)//自然數(shù)加法
{
 a=dezero(a);
 b=dezero(b);
 string c;
 string d="0";
 long int kmin,kmax,i;
 reverse(a.begin(),a.end());
 reverse(b.begin(),b.end());
 if(a.length()>b.length()) {kmin=b.length();kmax=a.length();c=a;}
 else {kmin=a.length();kmax=b.length();c=b;}
 c.insert(c.length(),d);
 for(i=0;i<kmin;i++)
 {
 if(a.at(i)>=48&&a.at(i)<=57) a.at(i)-=48;
 if(a.at(i)>=97&&a.at(i)<=122) a.at(i)-=87;
 if(b.at(i)>=48&&b.at(i)<=57) b.at(i)-=48;
 if(b.at(i)>=97&&b.at(i)<=122) b.at(i)-=87;
 c.at(i)=a.at(i)+b.at(i);
 }
 for(i=kmin;i<kmax+1;i++)
 {
 if(c.at(i)>=48&&c.at(i)<=57) c.at(i)-=48;
 if(c.at(i)>=97&&c.at(i)<=122) c.at(i)-=87;
 }
 for(i=0;i<kmax;i++)
 {
 if(c.at(i)>=n) 
 {
 c.at(i+1)+=c.at(i)/n;
 c.at(i)=c.at(i)%n;
 }
 }
 if(c.at(kmax)==0) 
 {
 c.erase(kmax,kmax+1);
 }
 for(i=0;i<c.length();i++)
 {
 if(c.at(i)>=10) c.at(i)+=87;
 if(c.at(i)<10) c.at(i)+=48;
 }
 reverse(c.begin(),c.end());
 return c;
}
int main()
{
 string a,b;
 while(cin>>a>>b)
 {
 cout<<add(a,b);
 }
 return 0;
}

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

相關(guān)文章

最新評論

郯城县| 越西县| 北票市| 马边| 荥经县| 太湖县| 盘山县| 安康市| 敦化市| 驻马店市| 顺义区| 松原市| 安溪县| 富宁县| 塔城市| 同心县| 上栗县| 固始县| 利川市| 金塔县| 嘉兴市| 天门市| 福州市| 南川市| 曲水县| 邢台市| 澄城县| 昌图县| 诏安县| 宜君县| 常熟市| 淮南市| 金山区| 资溪县| 万山特区| 贞丰县| 保靖县| 兴海县| 浮山县| 宁化县| 封开县|