PAT Basic 1016
本题代码可以参考这里。
原题: 1016. 部分A+B (15)
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
现给定A、DA、B、DB,请编写程序计算PA + PB。
输入格式
输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。
输出格式
在一行中输出PA + PB的值。
输入样例1
3862767 6 13530293 3
输出样例1
399
输入样例2
3862767 1 13530293 8
输出样例2
0
注意
时间限制: 100 ms
内存限制: 65536 kB
代码长度限制: 8000 B
判题程序: Standard
作者: CHEN, Yue
题目分析
先把所有内容当做字符串处理。
-
Python
利用
.count()
方法统计出DA出现的次数cnt。cnt_Da = A.count(Da)
再用
*
直接拼接n次,得到PA,并用int()
将其转为整数。注意cnt为0的情况。if cnt_Da: Pa = int(Da * cnt_Da) else: Pa = 0
对B作相同处理,然后两者相加即可。
-
C++
引入
<algorithm>
,即可得到std::count()
string A; char a; //注意a的类型 //... cnt_a = count(A.begin(), A.end(), a);
接着根据DA和cnt_a计算PA即可。注意cnt_a为0的情况。
部分测试用例
-
test1
输入 3862767 6 13530293 3 输出 399
-
test2
输入 3862767 1 13530293 8 输出 0
其他参考
(END)