题干:
正整数 A 的" (为 1 位整数)部分”定义为由 A 中所有 组成的新整数 。例如:给定 A=3862767, =6,则 A 的“6 部分” 是 66,因为 A 中有 2 个 6。
现给定 A、 、B、 ,请编写程序计算 + 。
输入格式:
输入在一行中依次给出 A、 、B、 ,中间以空格分隔,其中 0<A,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;
}
}
注释是我看别人的。