部分A+B_1

正整数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

==========================================================================
SRC:
#include <stdio.h>
#include <math.h>

int main ()
{
    int counterA, counterB,counterPA, counterPB ,i ;
    char A[11], B[11] , XA, XB ;
    unsigned long PA = 0 , PB = 0 ;

    counterA = 0 ;
    counterB = 0 ;
    counterPA = 0 ;
    counterPB = 0 ;

    while (1)
    {
        scanf ( "%c" , &XA ) ;
        if ( XA == ' ' )
            break ;
        A[counterA++] = XA ;

    }

    scanf ( "%c" , &XA ) ;
        printf ("XA:%c" , XA) ;

//    getchar () ;

    while (1)
    {
        scanf ( "%c" , &XB ) ;
        if ( XB == ' ' )
            break ;
        B[counterB++] = XB ;

    }
    
    scanf ( "%c" , &XB ) ;
    printf ("XB:%c" , XB) ;
//    getchar() ;

    for ( i = 0 ; i < counterA ; i++ )
    {
        if ( XA == A[i] )
            counterPA++ ;
    }
    for ( i = 0 ; i < counterB ; i++ )
    {
        if ( XB == B[i] )
            counterPB++ ;

    }
    
    counterA = (int)(XA-'0') ;
    counterB = (int)(XB -'0') ;

    printf ("counterA = %d " , counterA ) ;
    printf ("counterA = %d " , counterA ) ;

    for ( i = 0 ; i < counterPA ; i++  )
    {
        PA += (unsigned long)(counterA*pow(10, i ));
    }
    for  ( i = 0 ; i < counterPB ; i++ )
    {
        PB += (unsigned long)(counterB*pow(10 , i)) ;
    }

    printf ("%uld" , (PA+PB) ) ;

}
原文地址:https://www.cnblogs.com/inuyasha1027/p/pat_practice.html