PAT(Basic Level) 1016 部分A+B (15)
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
| 项目 | 要求 |
|---|---|
| 时间限制 | 100 ms |
| 内存限制 | 65536 kB |
| 代码长度限制 | 8000 B |
| 判题程序 | Standard |
| 作者 | CHEN, Yue |
正整数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
代码实现
C语言
#include <stdio.h>
#include <string.h>
int p_search(char S[], int n) {
int out=0;
for ( int i=0; i<strlen(S); i++ ) {
if ((S[i]-'0') == n) {
out = 10*out + n;
}
}
return out;
}
int main() {
char A[10], B[10];
int Da, Db;
scanf("%s %d %s %d", A, &Da, B, &Db);
printf("%d", p_search(A, Da) + p_search(B, Db));
return 0;
}
Python
def p_search(A, D):
num = 0
for letter in A:
if D == letter:
num += 1
if num:
return D * num
else:
return '0'
if __name__ == '__main__':
A, Da, B, Db = input().split()
print(int(p_search(A, Da)) + int(p_search(B, Db)))