咱就是说这个代码哪里错了????
2024-04-13 13:54:43
发布于:上海
23阅读
0回复
0点赞
# include <iostream>
# include <string>
# include <list>
using namespace std;
int main()
{
string a , s;
cin >> a >> s;
list<char> alist , blist;
for(int i = 0 ; i < a.size() ; i ++) alist.push_back(a[i]);
for(int i = 0 ; i < s.size() ; i ++) blist.push_back(s[i]);
if(alist.size() < blist.size())
{
while(alist.size() != blist.size())
{
alist.push_front(' ');
}
}
else if (alist.size() > blist.size())
{
while(alist.size() != blist.size())
{
blist.push_front(' ');
}
}
string ans1 , ans2;
while(!alist.empty())
{
ans1 += alist.front() ;
alist.pop_front();
}
while(!blist.empty())
{
ans2 += blist.front() ;
blist.pop_front();
}
string ans;
for(int i = 0 ; i < ans1.size() ; i ++) ans += ans1[i] - '0' + ans2[i] - '0';
cout << ans;
}
我用string拿进来,将全部的字符全存在list里面,(在位数不等的情况下加‘0’),然后再拿到string里,最后将结果加起来输出???
全部评论 1
你的方法基本正确,但在处理相加时,直接对字符ASCII码相加会导致错误结果。应从低位逐位相加,考虑进位。建议检查算法,确保正确处理大整数相加。
2024-04-17 来自 浙江
0谢谢你AC军,感谢
2024-04-17 来自 上海
0
有帮助,赞一个