본문 바로가기

CS?/코딩끄적

[python] 리스트 다항식 계산하기 (list 자료구조 연습)

반응형

자료구조에 list 부분 연습문제로 다항식 계산하는 문제가 나왔는데,

책에서 원한 방식은 클래스로 구현하는 것 같았지만!

아직 그정도 실력은 아니기 때문에 그냥 구현했다 ㅋㅋㅋ

거기에 다항식 어떻게 출력할지 몰라서 한 줄에 한 항씩 표시되는,,,,

 

언젠간 수정,,, 할 수 있다면,, 하는 걸루,,ㅎㅎ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
max_degree = int(input("다항식의 최고차항을 입력하세요: "))
poly_in=[]
for i in range(max_degree,-1,-1):
    print("x^",i,"의 계수는? : ")
    a=int(input())
    poly_in.append(a)
print(poly_in)
poly_in.reverse()
 
for i in range(len(poly_in)-1,-1,-1):
    if i != 0:
        print(poly_in[i],"x^",i,"+")
    elseprint(poly_in[0])
x=int(input("정수의 미지수 값을 입력하세요: "))
sum=0
for i in range(len(poly_in)-1,-1,-1):
    re=poly_in[i]*x**i
    sum+=re
print(sum)
 
a=input("다른 다항식이랑 계산 기기?[y/n]: ")
poly_add=[]
if a=='n'print("빠잉~!")
elif a=='y' :
    max_degree = int(input("다항식의 최고차항을 입력하세요: "))
    for i in range(max_degree,-1,-1):
        print("x^",i,"의 계수는? : ")
        a=int(input())
        poly_add.append(a)
print("입력한 다항식 1: ", poly_in)
print("-------------")
poly_add.reverse()
print("입력한 다항식 2: ",poly_add)
 
ca=int(input("다항식 덧셈:1  다항식 뺄셈:2  다항식 곱셉:3  : " ))
 
if ca==1:
    if len(poly_in)>len(poly_add):
        poly_in_copy=list(poly_in)
        for i in range(len(poly_add)):
                poly_in_copy[i]=poly_in[i]+poly_add[i]
        print(poly_in_copy)
    else:
        poly_add_copy=list(poly_add)
        for i in range(len(poly_in)):
            poly_add_copy[i]=poly_in[i]+poly_add[i]
        print(poly_add_copy)
elif ca==2:
    if len(poly_in)>len(poly_add):
        poly_in_copy=list(poly_in)
        for i in range(len(poly_add)):
            poly_in_copy[i]=poly_in[i]-poly_add[i]
        print(poly_in_copy)
    elif len(poly_in)<len(poly_add):
        poly_add_copy=list(poly_add)
        for i in range(len(poly_in)):
            poly_add_copy[i]=poly_add[i]-poly_in[i]
        print(poly_add_copy)
    elif len(poly_in)==len(poly_add):
        if poly_in[-1]>poly_add[-1]:
            poly_in_copy=[]
            poly_in_copy[i]=poly_in[i]-poly_add[i]
            print(poly_in_copy)
        else:
            poly_add_copy = []
            poly_add_copy[i] = poly_add[i] - poly_in[i]
            print(poly_add_copy)
elif ca==3:
    poly_multi=[0]*(len(poly_in)+len(poly_add)-1)
    for i in range(len(poly_in)):
        for j in range(len(poly_add)):
            poly_multi[i+j]+=poly_in[i]*poly_add[j]
    print(poly_multi)
cs
반응형