PAT.B1016. 部分A+B

题干:

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

现给定 A、 D A D_A DA、B、 D B D_B DB,请编写程序计算 P A P_A PA+ P B P_B PB

输入格式:

输入在一行中依次给出 A、 D A D_A DA、B、 D B D_B DB,中间以空格分隔,其中 0 1 0 10 10^{10} 1010

输出格式:

在一行中输出 P A P_A PA+ P B P_B PB的值。

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

输出样例 2:

0

#include
#include
#include
using namespace std;
int main(){
	
	string arr1;      //定义字符串 不用字符数组 
	string arr2;
	int a, b, c = 0, d = 0;
	int count = 1;
	cin >> arr1 >> a >> arr2 >> b;
	int len1 = arr1.size(), len2 = arr2.size();       //求取arr 的长度 
	for(int i = 0; i < len1; i++ ){
		if((arr1[i] - '0') == a){
			c += (a * count);               //m=m*10+a; 
			count *= 10;
		}
	}
   	count = 1;
	for(int i = 0; i < len2; i++ ){
		if((arr2[i] - '0') == b){
			d += (b * count);
			count *= 10;
		}
	}
	cout << d + c;
	
	
	return 0;
}

笔记:

这里返回字符串的长度用的是size,其与length并没有什么差别。可以看看这个博客C++:string类中size()和length()的区别
其实这点还是要看看,我还是太嫩*_*

for(int i = 0; i < len1; i++ ){
		if((arr1[i] - '0') == a){
			c += (a * count);               //m=m*10+a; 
			count *= 10;
		}
	}

注释是我看别人的。


你可能感兴趣的:(PAT.B1016. 部分A+B)