본문 바로가기

알고리즘 (Python)/코드업 기초 100제

[CodeUp] 코드업 기초 100제 6090번 풀이 - 파이썬(python)

728x90
반응형

6090 : [기초-종합] 수 나열하기3(py)

시간 제한 : 1초 메모리 제한 : 128 MB

 


 

문제 설명

 

어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(sequences)이라고 한다.

예를 들어
1 -1 3 -5 11 -21 43 ... 은
1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.

이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다.
"그럼.... 13번째 나오는 수는 뭘까?"

영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다...
그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,
n번째 수를 출력하는 프로그램을 만들어보자.

입력

 

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째 인지를 나타내는 정수(n)가
공백을 두고 입력된다.(a, m, d는 -50 ~ +50, n은 10이하의 자연수)

출력

 

n번째 수를 출력한다.

입력 예시

 

1 -2 1 8

출력 예시

 

-85

내 풀이

 

a,m,d,n = map(int,input().split())
num=0

for i in range(1,n):
    a = (m*a)+d
    
print(a)


모범 답안

 

a, m, d, n = input().split()

a = int(a)
m = int(m)
d = int(d)
n = int(n)

for i in range(1, n) :
  a = a*m+d

print(a)


해설

 

a, m, d, n을 정수형으로 입력받은 뒤 일반항을 구하여 for 반복문에 집어넣은 다음 최종적으로 a를 출력해줍니다.
728x90
반응형