2019-07-11 B1016 部分A+B

2019-07-12  本文已影响0人  JO炮

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

现给定 A、D​A​​、B、D​B​​,请编写程序计算 P​A​​+P​B​​。

输入格式:

输入在一行中依次给出 A、D​A​​、B、D​B​​,中间以空格分隔,其中 0<A,B<10​10​​。

输出格式:

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

        我比较恐惧使用字符串数组来解题,因为对这个类型不够熟悉,但这道题使用整型,我没有找到解决的办法。因此我参考了柳神的代码,换成字符串类型,问题便迎刃而解。

这道题需要注意的点是:在判断整型与字符型变量是否相等时可以使用a = c - '0'这个式子解决。

#include <iostream>

using namespace std;

int main() {

string a,b;

int da,db,pa = 0,pb = 0;

int count1 = 0;

int count2 = 0;

cin >> a >> da >> b >> db;

for(int i = 0; i < a.length(); i++)

if(da == (a[i] - '0')) count1++;

for(int i = 0; i < b.length(); i++)

if(db == (b[i] - '0')) count2++;

if(count1 != 0) pa = da;

if(count2 != 0) pb = db;

for(int i = 1; i < count1; i++)

pa = 10 * pa + da;

for(int i = 1; i < count2; i++)

pb = 10 * pb +db;

cout << pa + pb;

return 0;

}

上一篇 下一篇

猜你喜欢

热点阅读