1016. 部分A+B (15)
阿新 • • 發佈:2018-12-31
正整數A的“DA(為1位整數)部分”定義為由A中所有DA組成的新整數PA。例如:給定A = 3862767,DA = 6,則A的“6部分”PA是66,因為A中有2個6。
改天看看C語言字串輸入和字串方法。。。
現給定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); } }