Computer Science/Programming practice

[Python] 다항식 계산하기

꿈꾸는어린이 2018. 2. 4. 12:23


출처 : LG 전자


다항식 계산하기


< Requirements >

임의의 n(2<=n<=4)차 다항식 값을 계산할 수 있는 함수를 하나만 정의한다.
사용자로부터 차수, 계수, x값을 입력받아 계산 결과를 출력한다.
차수, 계수, x값과 결과값 모두 int 타입을 사용한다.




  degree = int(input("차수 입력(2~4) : "))

list = []
sum = 0
str = ""

def calculation(list, x):
global str, sum, tmp

# 1~n차 계산
for i in range(0, len(list)-1):
tmp = 1
str += ("%dx^%d+" % (list[i], (degree-i)))

tmp *= list[i]
for j in range(degree-i):
tmp *= x

sum += tmp

# 0차 계산
sum += list[degree]

str += ("%d " % list[degree])
str += (", x=%d -> %d" % (x, sum))


# main
# 리스트에 계수값 저장
for i in range(degree, -1, -1):
num = int(input("%d 차 계수 입력 : " % i))
list.append(num)

x = int(input("x값 입력 : "))

calculation(list, x)

print(str)

  n = int(input("차수 입력(2~4) :"))
list =[]
sum, tmp = 0, 0
rslt = ''

for i in range(0, n+1):
list.append(0)

for i in range(0, n+1):
list[i] = int(input( str(n-i) + "차 계수 입력 : "))

x = int(input("x값 입력 : "))


for i in range(0, n):
tmp += list[i]
for j in range(n-i):
tmp *= x
sum += tmp
tmp = 0

sum += list[n]

i = 0
for j in range(n, 0, -1):
rslt += ("%dx^%d + " % (list[i], j))
i += 1

rslt += ("%d " % (list[n]))
rslt += ("= %d" % sum)
print(rslt)