PTA 6 21 大整數求和(運算子過載)

2021-08-20 06:47:16 字數 1240 閱讀 3781

廢話少說,直接**,注釋都有,思路簡單,情況較多,君需三思,頭腦清晰,仔細考慮,勿犯小錯,必能成功。

#include #include using namespace std;

/* 請在這裡填寫答案 */

class bigint

bigint(string s)

friend ostream&operator<<(ostream &os, bigint &bigint)

friend bigint operator+( bigint &bigint1, bigint &bigint2);

};bigint operator+( bigint &bigint1, bigint &bigint2)

///b是長數字

char *sum=new char[b.size()+2];

int carry=0;//記錄進製

int count=0;//記錄sum的長度,從0開始

int m,n,k;//m,n取出a,b的某一位

int al,bl;//指示當前數字的位置

for (al=a.size()-1,bl=b.size()-1; al>=0; al--,bl--)

else

count++;

}if(a.size()==b.size() && carry==1) sum[count]='1';//判斷位數相等的情況

if(a.size()==b.size() && carry==0) count--;//用於最後封口,指示封口位置

int sizedif=b.size()-a.size();//當a,b不等時,記錄位差

int i=sizedif-1;

for(bl!=0; i>=0; i--) //a,b不等的情況

else

count++;

if(i==0 && carry==1) sum[count]='1'; //檢測首位是否需要進製

if(i==0 && carry==0) count--;

}sum[count+1]='\0';//封口

int j;

char t;

int x=count;

for(j=0; j<=count/2; j++)//交換輸出,注意count是從0開始記錄的

string st(sum);//將字元陣列轉換為字串

return bigint(st);

}int main()

大整數求和

檔名 text.cpp 完成日期 2016年9月8日 版本號 v1.0 程式輸入 兩個長度不限的整數 程式輸出 見執行結果 分析 因為是大整數,所以直接放棄定義int型的變數。可以考慮以字串的形式輸入 然後再從後往前將每乙個字串的字元給剝離出來,轉換成整型,在同位置的相加 加完後再判斷是否需要進製,...

大整數求和

大整數求和 摘要 對於一些大整數,如果超出電腦整型數所能表示的最大範圍,應該怎麼計算加法呢?我們可以利用字串進行求和,具體 如下 1 include2 include 3using namespace std 4string add string str1,string str2 5int main...

PTA 大整數乘法(運算子過載)

biginteger類表示不超過1000位的無符號大整數。試過載 和 以支援無符號大整數的輸入 輸出與乘法。過載面向biginteger類物件的運算子 裁判測試程式樣例 include include using namespace std 請在這裡填寫答案 intmain 輸入樣例 1234567...