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