C++ 大整数加法
功能
輸入兩個大整數(shù)(100位以內(nèi)),將結(jié)果輸出
測試用例1
請輸入一個大整數(shù)A:111111111
請輸入一個大整數(shù)B:00005
結(jié)果:111111116
請按任意鍵繼續(xù). . .
測試用例2
代碼
理論上,位數(shù)可以無限,實際使用時受內(nèi)存空間的限制,數(shù)組不能過大(10000+可能會產(chǎn)生段錯誤)
#include<iostream> #include<string> using namespace std;int main() {int A[100] = { 0 };int B[100] = { 0 };int jin[101] = { 0 };int res[101] = { 0 };//輸入string strA;string strB;cout << "請輸入一個大整數(shù)A:";cin >> strA;cout << "請輸入一個大整數(shù)B:";cin >> strB;//分離每一位int maxLength = strA.length() > strB.length() ? strA.length() : strB.length();int i;//Afor (i = 0; i < strA.length(); i++){A[strA.length() - i - 1] = (int)(strA[i] - '0');}//Bfor (i = 0; i < strB.length(); i++){B[strB.length() - i - 1] = (int)(strB[i] - '0');}//相加for (i = 0; i <= maxLength; i++){res[i] = (A[i] + B[i] + jin[i]) % 10; //當(dāng)前位結(jié)果jin[i + 1] = (A[i] + B[i] + jin[i]) / 10; //下一位進位}//輸出cout << "結(jié)果:";if (res[maxLength] != 0)cout << res[maxLength];//是否輸出最高位for (i = maxLength - 1; i >= 0; i--){cout << res[i];}cout << endl;system("pause"); }總結(jié)
- 上一篇: vb for循环 combobox的使用
- 下一篇: ACM练习 小Z来讲排名规则(WA)【C