本文主要是介绍大数减法(百练ID2736),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述求两个大的正整数相减的差。
9999999999999999999999999999999999999 9999999999999
#include<iostream> #include<string> #include<cstring> using namespace std; int c[202]; int main() {string a, b;while (cin >> a >> b){bool flag = false;//负数的标志,根据题意暂不考虑memset(c, 0, sizeof(c));/*if (a.size() < b.size()){flag = true;}else if (a.size() == b.size()){for (int i = 0; i< a.size(); ++i){if (a[i] < b[i]){flag = true;break;}}}if (flag){string t = a;a = b;b = t;cout << '-';}*/for (int i = a.size() - 1, j = 0; i >= 0; --i)c[j++] += a[i] - '0';for (int i = b.size() - 1, j = 0; i >= 0; --i)c[j++] -= b[i] - '0';for (int i = 0; i <= 201; i++){if (c[i] <0){c[i] += 10;c[i + 1] -= 1;}}int k = 201;while (!c[k] && k)k--;//一定注意 k==0的情况!!!!!!!!!!for (; k >= 0; k--)cout << c[k];}return 0; }
9999999999999999999999990000000000000
这篇关于大数减法(百练ID2736)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!