코드업 6090:수 나열하기3

최대 1 분 소요

문제

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

알고리즘

  1. map(int, input().split())을 통해 4개의 값을 입력 받을 수 있다.
  2. 초기값 a를 total이라는 변수에 저장
  3. 0부터 n-1, 즉 n-1번 반복문을 수행한다.
  4. total 이전 값에 m을 곱하고 d를 더해서 total이라는 변수에 저장한다.

풀이

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

total = a

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

카테고리:

업데이트:

댓글남기기