PAT 1074 宇宙无敌加法器 20分 知识点:高精度加法

题目:1074 宇宙无敌加法器 - PAT (Basic Level) Practice (中文) (pintia.cn)

解析:74_哔哩哔哩_bilibili

这道题是普通模拟加法的变种,我们还是进行加法模拟,但是多种进制的问题我们可以把各种进制存储到一个数组里根据情况选择就可以了:

js 复制代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
    vector<int>D,B,A,ans;
    string s;cin>>s;
        for(int i=s.size()-1;i>=0;i--)
        {
            //这里要特殊处理一下,0表示10进制
            if(s[i]!='0')D.push_back(s[i]-'0');
            else D.push_back(10);
        }
    cin>>s;
        for(int i=s.size()-1;i>=0;i--)
        {
            B.push_back(s[i]-'0');
        }
        cin>>s;
        for(int i=s.size()-1;i>=0;i--)
        {
            A.push_back(s[i]-'0');
        }

    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)
    {
        if(i<A.size())t+=A[i];
        if(i<B.size())t+=B[i];

        //此时t不仅存了每一位的值还存了每一位的进位

        //求每一位的值
        ans.push_back(t%D[i]);

        //求是否有进位
        t/=D[i];
    }
if(t)ans.push_back(1);  //进位

    //如果有前导0就把前导0去了
    while(ans.size()>1&&ans.back()==0)ans.pop_back();

    //正序输出(逆序相加,所以输出要再次逆序,变为正序)
    for(int i=ans.size()-1;i>=0;i--)
    {
        //if(i<ans.size)ans.pop_back();
        cout<<ans[i];
    }
return 0;
}
相关推荐
铉铉这波能秀25 分钟前
LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版
数据结构·python·算法·leetcode·字典·dictionary
蜡笔小马34 分钟前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
唐梓航-求职中43 分钟前
编程-技术-算法-leetcode-288. 单词的唯一缩写
算法·leetcode·c#
仟濹44 分钟前
【算法打卡day3 | 2026-02-08 周日 | 算法: BFS】3_卡码网99_计数孤岛_BFS | 4_卡码网100_最大岛屿的面积DFS
算法·深度优先·宽度优先
Ll13045252981 小时前
Leetcode二叉树part4
算法·leetcode·职场和发展
颜酱1 小时前
二叉树遍历思维实战
javascript·后端·算法
宝贝儿好1 小时前
第二章: 图像处理基本操作
算法
小陈phd1 小时前
多模态大模型学习笔记(二)——机器学习十大经典算法:一张表看懂分类 / 回归 / 聚类 / 降维
学习·算法·机器学习
@––––––1 小时前
力扣hot100—系列4-贪心算法
算法·leetcode·贪心算法
CoovallyAIHub1 小时前
让本地知识引导AI追踪社区变迁,让AI真正理解社会现象
深度学习·算法·计算机视觉