PAT.B1016. 部分A+B

题干:

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

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

输入格式:

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

输出格式:

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

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

输出样例 2:

0

#include<cstdio>
#include<iostream>
#include<string>
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;
		}
	}

注释是我看别人的。


发布了8 篇原创文章 · 获赞 0 · 访问量 151

猜你喜欢

转载自blog.csdn.net/qq_38632594/article/details/103905186