Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
105588 梁晨熙 蜜蜂线路 C++ 解答错误 0 0 MS 264 KB 1012 2023-10-07 13:33:11

Tests(0/5):


#include <bits/stdc++.h> using namespace std; string a_,b_,a,b; int c[114514]; int maxl; signed main() { cin >> a_; cin >> b_; //反过来 for(int i = a_.length()-1; i >= 0; i--) { a += a_[i]; } for(int i = b_.length()-1; i >= 0; i--) { b += b_[i]; } //补零 if(a_.length()>b_.length()) { for(int i = 1; i <= a_.length()-b_.length(); i++)b+='0'; } if(b_.length()>a_.length()) { for(int i = 1; i <= b_.length()-a_.length(); i++)a+='0'; } maxl = max(a.length(),b.length()); //模拟竖式 for(int i = 0; i < maxl; i++) { c[i] += a[i]+b[i]-'0'-'0';//加起来,注意是+=,因为有上一个的进位 c[i+1] += c[i]/10;//进位到下一位 c[i]%=10;//完成进位了,多出来的不要了 } //例如99+1 = 100, 那么会产生多一位 if(c[maxl]) { maxl++; } //输出,因为算的是反过来的,所以输出再反过来,就正常了 for(int i = maxl-1; i >= 0; i--) { cout << c[i]; } return 0; }


测评信息: