1016. 部分A+B (15)
正整数A的“ DA (为1位整数)部分”定义为由A中所有 DA 组成的新整数 PA 。例如:给定A = 3862767, DA = 6,则A的“6部分” PA 是66,因为A中有2个6。
现给定A、 DA 、B、 PA ,请编写程序计算 PA + PB 。
输入格式:
输入在一行中依次给出A、 DA 、B、 PA ,中间以空格分隔,其中0 < A, B < 1010 。
输出格式:
在一行中输出
PA
+
PB
的值。
输入样例1:
3862767 6 13530293 3
输出样例1:
399
输入样例2:
3862767 1 13530293 8
输出样例2:
0
//温故知新,修改于2016.8.4
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string a,b;
char da,db;
cin>>a>>da>>b>>db;
int num1=count(a.begin(),a.end(),da);
int num2=count(b.begin(),b.end(),db);
string s1(num1,da);
string s2(num2,db);
cout<<atoi(s1.c_str())+atoi(s2.c_str())<<endl;
}
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int str2int(string s,int n)
{
int num=0;
int mul=1;
for(int i=s.length();i>0;i--)
{
if((s[i-1]-'0')==n)
{
num=num+n*mul;
mul=mul*10;
}
}
return num;
}
int main()
{
fstream file("data.txt");
if(file.fail())
return 1;
string num1,num2;
int n,m;
file>>num1>>n>>num2>>m;
int A=str2int(num1,n);
int B=str2int(num2,m);
cout<<A+B<<endl;
return 0;
}