大数减法模板
2017-08-15 18:14
399 查看
计算 a - b
代码:
代码:
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 5 string sol; 6 7 bool get(string a, string b){ 8 if(a.size() < b.size()) return true; 9 if(a.size() > b.size()) return false; 10 for(int i = 0; i < a.size(); i++){ 11 if(a[i] < b[i]) return true; 12 else if(b[i] < a[i]) return false; 13 } 14 return false; 15 } 16 17 void solve(string a, string b){ 18 int j = a.size() - 1; 19 bool flag = false;//借位 20 for(int i = b.size() - 1; i >= 0; i--,j--){ 21 int x = a[j] - '0'; 22 int y = b[i] - '0'; 23 if(flag){ 24 x -= 1; 25 if(x < 0) x += 10; 26 else flag = false; 27 } 28 if(x < y){ 29 x += 10; 30 flag = true; 31 } 32 sol += (char)(x - y + '0'); 33 } 34 if(flag) a[j] -= 1; 35 while(j >= 0){ 36 sol += a[j--]; 37 } 38 } 39 40 int main(void){ 41 string a, b; 42 cin >> a >> b; 43 bool flag = get(a, b); 44 if(flag) solve(b, a); 45 else solve(a, b); 46 reverse(sol.begin(), sol.end()); 47 if(flag) cout << "-"; 48 cout << sol << endl; 49 return 0; 50 }
相关文章推荐
- 大数模板 大数加法,大数减法,大数乘法,大数除法,大数比较等操作
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 模板——大数相乘
- c++大数模板
- 大数a^b%n模板
- 【大数模板】
- 大数减法1.2
- 大数运算——加法减法
- 大数的减法
- UVA If We Were a Child Again(大数相除模板)
- hdu 4002 收获非常大的一个题 多功能大数模板的应用
- 大数,高精度计算---大数减法
- 高精度之减法模板
- C++大数模板
- 大数运算模板
- 大整数运算模板(减法)
- 大数模板
- 周教授大数模板【完整版】
- 大整数减法模板
- The kth great number(第k大数模板题:优先队列或树状数组或SBT)