题目链接
题目描述
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 D A组成的新整数 P A。例如:给定 A=3862767,DA=6,则 A 的“6 部分”P A是 66,因为 A 中有 2 个 6。
现给定 A、D
A、B、D B ,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、D A 、B、D B ,中间以空格分隔,其中 0<A,B<10 9。
输出格式:
在一行中输出 P A+P B的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
题目大意
给你两个数A B和两个规定数PA PB让你从中挑出PA PB求和
解题思路
这道题很常规,只不过可以养成只要判断一个数字的每一个位数的问题,就不用int类型而用string类型比较方便
题解
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
int pa,pb;
int numa=0,numb=0;
cin>>a>>pa>>b>>pb;
for(int i=0;i<a.length();i++){
if(a[i]-'0'==pa){
//当发现当前数等于pa时
if(numa==0) numa=pa; //说明是第一个相等的时候
else numa=numa*10+pa; //除了第一个以外相等的时候
}
}
for(int i=0;i<b.length();i++){
if(b[i]-'0'==pb){
if(numb==0) numb=pb;
else numb=numb*10+pb;
}
}
cout<<numa+numb;
}

文章提供了一道编程题目,要求计算两个整数A和B中特定位数(DA和DB)出现的数字之和。解题方法是将整数转换为字符串,遍历每一位,判断是否等于给定的数,然后累加。示例代码展示了如何实现这一逻辑。
295

被折叠的 条评论
为什么被折叠?



