国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++使用string的大數減法運算(2)

2020-01-26 13:24:35
字體:
來源:轉載
供稿:網友

本次項目目標:使用C++完成對于大數的減法運算,供大家參考,具體內容如下

項目要點

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

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

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

比如:

char a=161;

cout<<(int)a;

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

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

運行截圖及代碼如下

#include<iostream>#include<string>#include<algorithm>using namespace std;#define n 10string 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;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平塘县| 濮阳市| 隆回县| 辰溪县| 仁布县| 清丰县| 麻城市| 板桥市| 洪江市| 芒康县| 昌吉市| 马龙县| 澄迈县| 肥东县| 香河县| 江达县| 吴桥县| 全南县| 桓仁| 洪洞县| 华蓥市| 东丰县| 丰都县| 酉阳| 和硕县| 博乐市| 德钦县| 伽师县| 太保市| 永平县| 望都县| 临江市| 武功县| 临朐县| 呼和浩特市| 乳山市| 德令哈市| 阿拉善盟| 铜山县| 邵武市| 四会市|