首页 > 编程知识 正文

浙大pat全国考试地点,浙大pat题库

时间:2023-05-05 21:04:07 阅读:233604 作者:3341

https://pintia.cn/problem-sets/994805260223102976/problems/994805263297527808

 测试点1、3是没有考虑到两数相加的最高位要进位的情况。

测试点5是没考虑到两数都是0的情况,比如num1是00000,num2是000。

#include<iostream>#include<string.h>using namespace std;int main() {int i, j, a, b, c, sum, jin=0;string str, num1, num2, res="";cin >> str >> num1 >> num2; // 消除前面的0for(i=0; i<num1.size() && num1[i]=='0'; i++);for(j=0; j<num2.size() && num2[j]=='0'; j++);num1.erase(0, i);num2.erase(0, j); // 两数相加int r = str.size()-1, p = num1.size()-1, q = num2.size()-1;for(; p>=0||q>=0||jin>0; p--, q--, r--){if(p>=0)a = num1[p]-'0';elsea = 0;if(q>=0)b = num2[q]-'0';elseb = 0;c = str[r]-'0';if(c==0)c = 10;sum = a+b+jin;jin = sum/c;res = to_string(sum%c) + res;}if(res == ""){cout << 0 << endl;}else{cout << res << endl;} return 0;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。