6090 : [기초-종합] 수 나열하기3(py)
문제설명 |
어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(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())
s=a
for i in range(2,n+1):
s=s*m+d
print(s)
해설
for 문으로 작성한다.
n=1일 때는 초깃값 a만 있으니까 n=2일 때부터 m을 곱하고 d를 더하도록 범위를 range(2, n+1)로 하고
s=s*m+d를 반복하도록 작성한다.