请问这个代码为啥的漏洞是哪里.....

lan_de_qu 2020-06-03 08:49:29
#include <iostream>
#include <string>

using namespace std;

class BigInt
{
private:
string bigint;
public:
BigInt(string a="") { bigint= a; }
friend ostream & operator<< (ostream &os, const BigInt &a) {
os << a.bigint;
return os; }
friend istream& operator>>(istream &is, BigInt &x)//输入
{
is >> x.bigint;
return is;
}
BigInt operator +(BigInt &a)
{
string templong;
string tempshort;
bool jinwei=false;
string sum;
if (a.bigint.size() > bigint.size())
{
templong = a.bigint;
tempshort = bigint;
}
else {
templong = bigint;
tempshort = a.bigint;
}for (int i =1 ; i <=tempshort.size(); i++)
{
int l, s;
l = templong[templong.size() - i] - '0';
s = tempshort[tempshort.size() - i] - '0';
if (jinwei) {
jinwei = false;

if (s+l+1> 9) {
jinwei = true;
sum = to_string((s+l+1)% 10) + sum;
}
else { sum = to_string((s+l+1)) + sum; }
}
else {
if ((s+l)> 9) {
jinwei = true;
sum = to_string((s+l) % 10) + sum;
}
else { sum =to_string((s+l)) + sum; }
}
}
for (int i = tempshort.size()+1; i <= templong.size(); i++)
{
int l;
l = templong[templong.size() - i] - '0';
if (jinwei)
{ jinwei = false;
if ((l + 1) > 9)
{
jinwei = true;
sum = to_string((l+1) % 10) + sum;

}
else
{

sum = to_string(l + 1) + sum;;
}
}
else
{
sum = to_string(l) + sum; }
}



return BigInt(sum);
}

};
int main() {
BigInt a, b, c;
cin >> a >> b;
c = a + b;
cout << a << "+" << b << "=" << c << endl;
return 0;
}
我在pta的时候这个题目显示我部分正确,但是我想不到错误的地方。。。求大佬纠一下错。。。
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
lan_de_qu 2020-06-14
  • 打赏
  • 举报
回复
引用 1 楼 pearling 的回复:
至少说明一下这个问题的背景啊,否则不会有人有时间帮你调试代码的

就是实现输入两个可以大于整数型大小的数字(即作为字符串输入),然后按位置加减,同时运用逻辑性整数进行进位运算....初来乍到,问题不完善不好意思啊....
pearling 2020-06-04
  • 打赏
  • 举报
回复
至少说明一下这个问题的背景啊,否则不会有人有时间帮你调试代码的

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧