算法学习之路|部分A+B-阿里云开发者社区

开发者社区> kissjz> 正文

算法学习之路|部分A+B

简介: 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
+关注继续查看

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。

现给定A、DA、B、DB,请编写程序计算PA + PB。

输入格式

输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。

输出格式

在一行中输出PA + PB的值。

输入样例1:
3862767 6 13530293 3
输出样例1:
399
输入样例2:
3862767 1 13530293 8
输出样例2:
0

思路

找到字符串A中的Pa,找字符串B中的Pb

变换成int型,相加即可。

#include<iostream>

#include<string>

#include <sstream>

using namespace std;
int main(){
    string a,b;
    int ai,bi;
    cin>>a>>ai>>b>>bi;
    int counta=0,countb=0;
    int shibei=1;
    stringstream sa;//操作第一个数
    sa<<ai;
    string sai;
    sa>>sai;
    

    while(a.find(sai)!=-1){
        counta+=ai*shibei;
        shibei*=10;
        a.erase(a.find(sai),1);
    }

    stringstream sb;//同样的操作操作第二个数
    sb<<bi;
    string sbi;
    sb>>sbi;
    shibei=1;
    while(b.find(sbi)!=-1){
        countb+=bi*shibei;
        shibei*=10;
        b.erase(b.find(sbi),1);
    }
    
    cout<<counta+countb;
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
sublime生成html骨架|学习笔记
快速学习 sublime生成html骨架
23 0
算法学习之路|部分A+B
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
887 0
算法学习之路|A除以B
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
794 0
机器学习实战:基于概率论的分类方法:朴素贝叶斯(源码解析,错误分析)
按照惯例,先把代码粘到这里 from numpy import * def LoadDataSet(): postingList = [['my', 'dog', 'has', 'flea', 'proble...
840 0
RSA和RSA2签名算法区别
RSA和RSA2签名算法 什么是数字签名? 一个很好的说明文档可以参考:What is a Digital Signature?,中文翻译可以参考:数字签名是什么?. 简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。
1840 0
+关注
kissjz
Keep It Simple , Stupid. 独立博客:白水东城(www.baishuidongcheng.com)
246
文章
44
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载