91 lines
1.8 KiB
C
91 lines
1.8 KiB
C
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
|
|||
|
void output_P(int P[]);
|
|||
|
void Padd(int A[], int B[], int C[],int lenA,int lenB);
|
|||
|
|
|||
|
void output_P(int P[]) {
|
|||
|
int i;
|
|||
|
for(i=1;i<P[0]*2;i++){
|
|||
|
printf("%d^%d ",P[i+1],P[i]);
|
|||
|
i++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void Padd(int A[], int B[], int C[],int lenA,int lenB) {
|
|||
|
int i = 1 , j=1 , k=1 ,count=0;
|
|||
|
|
|||
|
while(i<lenA && j<lenB){//<2F><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>A<EFBFBD>MB<4D><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(A[i]>B[j]){
|
|||
|
C[k++] = A[i++];
|
|||
|
C[k++] = A[i++];
|
|||
|
count++;
|
|||
|
}
|
|||
|
if(A[i]<B[j]){
|
|||
|
C[k++] = B[j++];
|
|||
|
C[k++] = B[j++];
|
|||
|
count++;
|
|||
|
}
|
|||
|
if(A[i]==B[j]){
|
|||
|
C[k++] = B[j++];
|
|||
|
i++;
|
|||
|
C[k++] = B[j++] + A[i++];
|
|||
|
count++;
|
|||
|
}C[0]=count;
|
|||
|
}
|
|||
|
|
|||
|
// <09><><EFBFBD><EFBFBD>
|
|||
|
// printf("\nA = (");
|
|||
|
// for(i=0;i<lenA;i++){
|
|||
|
//// printf("A[%d]=%d ,",i,A[i]);
|
|||
|
// printf("%d ",A[i]);
|
|||
|
// }
|
|||
|
// printf(")\nB = (");
|
|||
|
// for(i=0;i<lenB;i++){
|
|||
|
//// printf("B[%d]=%d ,",i,B[i]);
|
|||
|
// printf("%d ",B[i]);
|
|||
|
// }
|
|||
|
// printf(")\nC = (");
|
|||
|
// for(i=0;i<count*2+1;i++){
|
|||
|
//// printf("C[%d]=%d ,",i,C[i]);
|
|||
|
// printf("%d ",C[i]);
|
|||
|
// }printf(")");
|
|||
|
|
|||
|
// <09><><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>
|
|||
|
// printf("\nA<6E>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\n",A[0]);
|
|||
|
// for(i=1;i<A[0]*2;i++){
|
|||
|
// printf("%d^%d ",A[i+1],A[i]);
|
|||
|
// i++;
|
|||
|
// }
|
|||
|
// printf("\nB<6E>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\n",B[0]);
|
|||
|
// for(i=1;i<B[0]*2;i++){
|
|||
|
// printf("%d^%d ",B[i+1],B[i]);
|
|||
|
// i++;
|
|||
|
// }
|
|||
|
// printf("\nC<6E>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\n",C[0]);
|
|||
|
// for(i=1;i<C[0]*2;i++){
|
|||
|
// printf("%d^%d ",C[i+1],C[i]);
|
|||
|
// i++;
|
|||
|
// }
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
int main() {
|
|||
|
int A[] = { 5, 6, 6, 4, 5, 2, 3, 1, 3, 0, 2 };
|
|||
|
int B[] = { 4, 4, 8, 3, 6, 2, 2, 0, 1 };
|
|||
|
int C[13] = { 0 };
|
|||
|
int lenA = sizeof A / sizeof A[0];
|
|||
|
int lenB = sizeof B / sizeof B[0];
|
|||
|
|
|||
|
Padd(A, B, C, lenA, lenB);
|
|||
|
|
|||
|
printf("\nA<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\nA = ( ",A[0]);
|
|||
|
output_P(A);
|
|||
|
printf(")\nB<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\nB = ( ",B[0]);
|
|||
|
output_P(B);
|
|||
|
printf(")\nC<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ӥ<EFBFBD><D3A4><EFBFBD>\nC = ( ",C[0]);
|
|||
|
output_P(C);
|
|||
|
printf(")");
|
|||
|
return 0;
|
|||
|
}
|