C/C++可以通过模拟的方法解决高精度的问题,但是我们不是特别建议在考试的时候自己手动去模拟大整数的问题,这样很容易出现失误。
当然,如果是很简单的加减法运算,用C/C++模拟也是挺不错的,毕竟更换IDE也挺麻烦的。
下面给出C/C++大数加法的代码
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string Add(string a, string b) {
//a一直为位数较长的字符串
if (a.length() < b.length()) a.swap(b);
string result(a.length(), 0); //初步设置result长度为较长字符长度
b.insert(0, a.length() - b.length(), '0'); //较短的字符串前面补零方便计算
int carry = 0; //进位
for (int i = a.length() - 1; i >= 0; i--) {
int sum = (a[i] - 48) + (b[i] - 48) + carry;
carry = sum / 10;
result[i] = sum % 10 + 48;
}
//若进位不为0,还要在前面补上进位
if (carry != 0) {
result.insert(result.begin(), carry + 48);
}
return result;
}
int main() {
string a, b;
while (cin >> a >> b)
cout << Add(a, b) << endl;
return 0;
}
掌握C/C++解法
登录后开始许愿
暂无评论,来抢沙发