最近做題經常碰到題目中說輸入兩個超級大整數,然後讓童鞋對這兩個超級大整數做運算,一開始我還因為題目有問題,哪有整形可以放得下這麼大的整數,後來看了前人的做題思路後發現是我無知了,以下面這道題對這種方法做乙個記錄。
題目描述:
思路:用兩個字串來存放兩個整數,然後用字串模擬加法的運算,這樣就可以對超級大的整數做加法運算了。
#include
#include
using namespace std;
//用字串來模擬加法的實現
string add
(string s1, string s2)
如果s1長的話,將長出來的位進行運算
while
(i >=0)
如果s2長的話,將長出來的位進行運算
while
(j >=0)
//如果最高位有進製,將進製1加到res的前面
if(t >0)
res =
(char
)(t +
'0')
+ res;
return res;
}//比較兩個字串對應的兩個整數的大小
bool great
(string s1, string s2)
intmain()
}
位運算實現兩個整數的加法運算
最近在看一本 程式設計師面試寶典 在程式設計基本概念這一章中多次出現了按位與,異或等二進位制的計算,下面這道題就是其中之一 先放 include int add const int a,const int b if b 0 return a 設定遞迴退出條件 else int sum,carry s...
大整數的加法
問題 實現30位以內的大整數的加法 include include int main b 50 c 50 m,n,q,k,i printf 請輸入兩個大整數並以回車鍵表示輸入結束 n gets s1 獲得字串形式的大整數 gets s2 m strlen s1 m等於字串的長度 n strlen s...
大整數的加法
加法的步驟 將該位上的兩個數字與進製相加,得到的結果取個位數作為該位結果,取十位數作為新的進製。加法部分程式 高精度a b bign add bign a,bign b 如果最後進製不為0,則直接賦給結果的最高位 if carry 0 return c 乙個完整的應用程式 include inclu...