1016 部分A+B (15 分)Java

丸子小哥發表於2019-02-21

1016 部分A+B (15 分)

正整數 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​​ 的值。

輸入樣例 1:

3862767 6 13530293 3

輸出樣例 1:

399

輸入樣例 2:

3862767 1 13530293 8

輸出樣例 2:

0

 //這道題目我一開始是想著把它轉換成字元,然後判斷有多少一樣的,再用字串進行相加,最後把字串轉換為整形相加就可以了,不過有未通過的,就用下面的方法,都差不多...嚶嚶嚶..

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner in=new Scanner(System.in);
		String a=in.next();
		int pa=in.nextInt();
		String b=in.next();
		int pb=in.nextInt();
		int alen=a.length();
		int blen=b.length();
		int countPa=0,countPb=0;
//		char[] pastr=a.toCharArray();
//		char[] pbstr=b.toCharArray();
		int sum1=0,sum2=0;
//		String s1="";
//		String s2="";
		for(int i=0;i<alen;i++) {
			if(a.charAt(i)-'0'==pa) {
				countPa++;//查詢有多少個一樣的
			}
		}
		for(int i=0;i<blen;i++) {
			if(b.charAt(i)-'0'==pb) {
				countPb++;
			}
		}
		for(int i=0;i<countPa;i++) {
			sum1+=pa;//查詢的次數換成整數儲存
			pa*=10;
			}
		for(int i=0;i<countPb;i++) {
			sum2+=pb;
			pb*=10;
			}
		System.out.println(sum1+sum2);
	}
}

 

 //下面是執行結果:

 

相關文章