91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在C++中實現string的減法運算

發布時間:2021-03-23 16:44:41 來源:億速云 閱讀:1637 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關怎么在C++中實現string的減法運算,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

項目要點

1.大數指的是遠超long long int的數據

2.將大數用矩陣進行存儲,并通過矩陣實現運算

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

比如:

char a=161;

cout<<(int)a;

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

減法,此處只做自然數加法,因為存在負整數的話可以使用自然數加法來處理,只需判斷正負再看加減即可

運行截圖及代碼如下

怎么在C++中實現string的減法運算

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)//用來去掉正數前面的0,也就是說可以輸入000001類似這樣的數字
{
 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;
}
int judge(string a,string b)//判斷兩個正數的大小
{
 if(a.length()>b.length()) return 1;
 if(a.length()<b.length()) return -1;
 long int i;
 for(i=0;i<a.length();i++)
 {
 if(a.at(i)>b.at(i)) return 1;
 if(a.at(i)<b.at(i)) return -1;
 }
 return 0;
}
string minus(string a,string b)//自然數減法
{
 a=dezero(a);
 b=dezero(b);
 long int i,j=0;
 string c="0";
 string c1,c2;
 string d="-";
 if(judge(a,b)==0) return c;
 if(judge(a,b)==1)
 {
 c1=a;
 c2=b;
 }
 if(judge(a,b)==-1)
 {
 c1=b;
 c2=a;
 j=-1;
 }
 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<c2.length();i++)
 {
 c1.at(i)=c1.at(i)-c2.at(i);
 }
 for(i=0;i<c1.length()-1;i++)
 {
 if(c1.at(i)<0)
 {
  c1.at(i)+=n;
  c1.at(i+1)--;
 }
 }
 for(i=c1.length()-1;i>=0;i--)
 {
 if(c1.at(i)>0) break;
 }
 c1.erase(i+1,c1.length());
 for(i=0;i<c1.length();i++)
 {
 if(c1.at(i)>=10) c1.at(i)+=87;
 if(c1.at(i)<10) c1.at(i)+=48;
 }
 reverse(c1.begin(),c1.end());
 if(j==-1) c1.insert(0,d);
 return c1;
}
int main()
{
 string a,b;
 while(cout<<"input:"&&cin>>a>>b)
 {
 cout<<"output:"<<minus(a,b)<<endl;
 }
 return 0;
}

看完上述內容,你們對怎么在C++中實現string的減法運算有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 保靖县| 垦利县| 类乌齐县| 武胜县| 汉中市| 肥东县| 海林市| 高尔夫| 亚东县| 英山县| 崇信县| 清丰县| 天津市| 汉川市| 陵水| 鄂托克前旗| 莱西市| 台南县| 虹口区| 永定县| 随州市| 祁阳县| 宣汉县| 旬阳县| 田东县| 商水县| 泰和县| 安达市| 石家庄市| 黑河市| 凤山市| 灵台县| 忻城县| 铁岭县| 巧家县| 巴南区| 化德县| 兴义市| 临洮县| 中阳县|