88 lines
2.0 KiB
C
88 lines
2.0 KiB
C
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
#define DUMMY -1
|
|||
|
|
|||
|
void output_P(int P[], int size);
|
|||
|
void Padd(int A[], int B[], int C[]);
|
|||
|
char compare(int a, int b);
|
|||
|
|
|||
|
void output_P(int P[], int size) {
|
|||
|
int i;
|
|||
|
int first = 1;
|
|||
|
for (i = 2; i < size; i += 2) {
|
|||
|
if (P[i+1] != 0) {
|
|||
|
if (!first) {
|
|||
|
printf(" + ");
|
|||
|
}
|
|||
|
if (P[i] > 1) {
|
|||
|
printf("%dx^%d", P[i+1], P[i]);
|
|||
|
} else if (P[i] == 1) {
|
|||
|
printf("%dx", P[i+1]);
|
|||
|
} else {
|
|||
|
printf("%d", P[i+1]);
|
|||
|
}
|
|||
|
first = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
if (first) { // <20>p<EFBFBD>G<EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|||
|
printf("0");
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
}
|
|||
|
|
|||
|
void Padd(int A[], int B[], int C[]) {
|
|||
|
int i = 2, j = 2, k = 2;
|
|||
|
int sizeA = A[1], sizeB = B[1];
|
|||
|
while (i < sizeA * 2 + 2 || j < sizeB * 2 + 2) {
|
|||
|
if (i >= sizeA * 2 + 2) {
|
|||
|
C[k] = B[j];
|
|||
|
C[k+1] = B[j+1];
|
|||
|
j += 2;
|
|||
|
} else if (j >= sizeB * 2 + 2) {
|
|||
|
C[k] = A[i];
|
|||
|
C[k+1] = A[i+1];
|
|||
|
i += 2;
|
|||
|
} else if (A[i] > B[j]) {
|
|||
|
C[k] = A[i];
|
|||
|
C[k+1] = A[i+1];
|
|||
|
i += 2;
|
|||
|
} else if (A[i] < B[j]) {
|
|||
|
C[k] = B[j];
|
|||
|
C[k+1] = B[j+1];
|
|||
|
j += 2;
|
|||
|
} else {
|
|||
|
C[k] = A[i];
|
|||
|
C[k+1] = A[i+1] + B[j+1];
|
|||
|
if (C[k+1] == 0) {
|
|||
|
k -= 2; // <20>p<EFBFBD>G<EFBFBD>Y<EFBFBD>Ƭ<EFBFBD>0<EFBFBD>A<EFBFBD><41><EFBFBD>K<EFBFBD>[<5B>o<EFBFBD>@<40><>
|
|||
|
}
|
|||
|
i += 2;
|
|||
|
j += 2;
|
|||
|
}
|
|||
|
k += 2;
|
|||
|
}
|
|||
|
C[1] = (k - 2) / 2;
|
|||
|
C[0] = DUMMY;
|
|||
|
printf("A: ");
|
|||
|
output_P(A, sizeA * 2 + 2);
|
|||
|
printf("B: ");
|
|||
|
output_P(B, sizeB * 2 + 2);
|
|||
|
printf("C = A + B: ");
|
|||
|
output_P(C, k);
|
|||
|
}
|
|||
|
|
|||
|
char compare(int a, int b) {
|
|||
|
if (a > b) return '>';
|
|||
|
if (a < b) return '<';
|
|||
|
return '=';
|
|||
|
}
|
|||
|
|
|||
|
int main() {
|
|||
|
int A[] = { DUMMY, 4, 4, 5, 3, 2, 2, 3, 0, 2 };
|
|||
|
int B[] = { DUMMY, 3, 3, 6, 1, 5, 0, 1 };
|
|||
|
int C[13] = { DUMMY };
|
|||
|
|
|||
|
Padd(A, B, C);
|
|||
|
return 0;
|
|||
|
}
|