pat乙级1074. 宇宙无敌加法器(20)

欢迎访问我的pat乙级题解目录哦https://blog.csdn.net/richenyunqi/article/details/84981369

题目描述

pat乙级1074. 宇宙无敌加法器(20)_第1张图片

注意点

  1. 输入的数最多有20位,即使用long long也存储不下,需要用字符串存储
  2. 为了方便加和,可以将输入的3个字符串都翻转过来。
  3. 最后一个测试点输入的两个要加和的字符串都是0,输出应为0
  4. 如果加和结果不是0,不要输出前导0,例如0723,只应输出723
  5. 注意加和最后结果仍有进位的情况,例如999+111最后结果仍有一个进位,应该是4位的字符串

C++代码

#include
using namespace std;
int main(){
    string carry,n1,n2,n="";
    cin>>carry>>n1>>n2;
    int c=0,len=max(n1.size(),n2.size())+1;//为了循环中能直接处理最后进位的情况,令len为n1,n2最大长度+1
    reverse(carry.begin(),carry.end());
    reverse(n1.begin(),n1.end());
    reverse(n2.begin(),n2.end());
    for(int i=0;i1&&n.back()=='0')//删除字符串尾部的'0'字符
        n.pop_back();
    reverse(n.begin(),n.end());
    puts(n.c_str());
    return 0;
}

 

你可能感兴趣的:(pat乙级)