알고리즘 공부/코드업 기초 100제

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

뚜써 2022. 1. 12. 05:11

https://codeup.kr/problem.php?id=6090 

 

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

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

문제 설명

 

본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다. 
------

어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(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

 

풀이

 

간단한 수학 문제다.

이전 문제처럼 일반항을 구하여 풀어도 되지만, 조금 복잡해서 이번에는 for문을 이용하여 해결하였다.

 

소스 코드

 

a, m, d, n = input().split()
a, m, d, n = int(a), int(m), int(d), int(n)
for i in range(n-1):
    a = a*m + d
print(a)