正整数A的“D
A(为1位整数)部分”定义为由A中所有D
A组成的新整数P
A。例如:给定A = 3862767,D
A = 6,则A的“6部分”P
A是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
使用Java会超时
C++ AC代码
#include<iostream>
#include <string>
#include <cstdio>
#include <string.h>
using namespace std;
int main(){
char A[10000], B[10000];
int Da, Db, Pa = 0, Pb = 0;
scanf( "%s", A );
scanf( "%d", &Da );
scanf( "%s", B );
scanf( "%d", &Db );
for ( int i = 0; i < strlen(A); i++ ){
if ( A[i] - 48 == Da)
Pa = Pa * 10 + Da;
}
for ( int i = 0; i < strlen(B); i++ ){
if ( B[i] - 48 == Db)
Pb = Pb * 10 + Db;
}
cout << Pa + Pb;
return 0;
}
改天看看C语言字符串输入和字符串方法。。。
Java代码,运行超时,不过测试点数据能在控制台输出
import java.util.Scanner;
public class pat_1016 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String A = in.next();
int Da = in.nextInt();
String B = in.next();
int Db = in.nextInt();
int Pa = 0, Pb = 0;
for(int i = 0; i < A.length(); i++){
if(A.charAt(i) - 48 == Da)
Pa = Pa * 10 + Da;
}
for(int i = 0; i < B.length(); i++){
if(B.charAt(i) - 48 == Db)
Pb = Pb * 10 + Db;
}
System.out.println(Pa + Pb);
}
}