PAT 乙級 1016. 部分A+B (C語言版)

  1. 部分A+B (15)

時間限制
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

#include <stdio.h>

#include <math.h>
int caculateNewNumber(int a,int b);
int main(){
    int A,Da,B,Db;
    scanf("%d%d%d%d",&A,&Da,&B,&Db);
    int PA = caculateNewNumber(A,Da);
    int PB = caculateNewNumber(B,Db);
    printf("%d",PA+PB);

    return 0;
}
int caculateNewNumber(int a,int b){
    int cnt = 0;
    while(a > 0){
    //這樣寫b可以=0int p = a % 10;p % b == 0 這樣不行. 
        if(a % 10 == b){
            cnt++;
        }
        a = a / 10;
    }

    int result = 0;
    for(int i=0;i<cnt;i++){
        result = result + b * (pow(10,i));
    }
    return result;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章