2017 자료구조

From: 2017-03-10 00:00:00 To: 2017-06-30 00:00:00 Now: 2024-05-08 13:03:52 Status: Public

F - 다항식의 덧셈,뺄셈,곱셈

Time Limit: 1s Memory Limit: 128MB

Snippet Judge Submissions: 164 Solved: 11
Description

p1, p2 다항식을 입력받아 p1+p2, p1-p2, p1*p2의 결과를 찾아라.

Input

* Line 1 : p1 다항식의 차수 d1 (1~100 범위의 정수)

* Line 2 : 공백으로 구분된 (d1 + 1)개의 계수들 (절댓값이 1000 이하인 정수)

* Line 3 : p2 다항식의 차수 d2 (1~100 범위의 정수)

* Line 4 : 공백으로 구분된 (d2 + 1)개의 계수들 (절댓값이 1000 이하인 정수)

 

Output

* Line 1 : 공백으로 구분된 p1+p2 결과 다항식의 계수들

* Line 2 : 공백으로 구분된 p1-p2 결과 다항식의 계수들

* Line 3 : 공백으로 구분된 p1*p2 결과 다항식의 계수들

 

Sample Code
#include <stdio.h>
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MAX_DEGREE 201
#define POLY_ADD 0
#define POLY_SUB 1
#define POLY_MUL 2
typedef struct { 			
	int degree;			
	int coef[MAX_DEGREE];	
} polynomial;

YOUR_CODE

int main()
{

	polynomial p1, p2, p3; 
	int i;

	scanf("%d", &p1.degree);
	for (i = 0 ; i <= p1.degree ; i++) 
		scanf("%d", &p1.coef[i]);

	scanf("%d", &p2.degree);
	for (i = 0 ; i <= p2.degree ; i++) 
		scanf("%d", &p2.coef[i]);

	p3 = poly_arithmetic(p1, p2, POLY_ADD);
	poly_print(p3);

	p3 = poly_arithmetic(p1, p2, POLY_SUB);
	poly_print(p3);

	p3 = poly_arithmetic(p1, p2, POLY_MUL);
	poly_print(p3);

	return 0;
}
Sample Input
3
2 0 1 -3
2
1 -2 2
Sample Output
2 1 -1 -1
2 -1 3 -5
2 -4 5 -5 8 -6
Source

c자료구조3장