PAT_乙级 1016 部分A+B(15)

正整数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 < 10^10。

输出格式

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

输入样例1

3862767 6 13530293 3

输出样例1

399

输入样例2

3862767 1 13530293 8

输出样例2

0

分析:将A和B保存在string a和b中,将DA和DB保存在da和db中,因为A为字符串,所以对于它的每一位a[i],当da == (a[i]- '0')时候表示da和a[i]相等,则pa = pa * 10 + da;B同理,当db == (b[i]- '0')时候表示db和b[i]相等,则pb = pb * 10 + db;最后输出pa+pb的值~
#include<bits/stdc++.h>
using namespace std;

int main(){
	string s1,s2;
	int n,m;
	int num1 = 0,num2 = 0;
	int a = 0,b = 0;
	
	cin >> s1 >> n >> s2 >> m;
	
	for(int i = 0;i < s1.size();i++){
		if(n == (s1.at(i)-'0')){
			num1++;
		}
	}
	
	for(int i = 0;i < num1;i++){
		a += n * pow(10,i);
	}
	
	
	for(int i = 0;i < s2.size();i++){
		if(m == (s2.at(i)-'0')){
			num2++;
		}
	}
	for(int i = 0;i < num2;i++){
		b += m * pow(10,i);
	}
	cout << a + b;	
}
上一篇:android jitpack maven管理


下一篇:20145312 《网络对抗》PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验