[기초-종합] 수 나열하기3
어떤 규칙에 따라 수를 순서대로 나열한 것을 수열이라고 한다.
예를 들어
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())
for i in range(n-1):
a = (a * m) + d
print(a)
설명
구하고자 하는 항의 -1번 만큼 연산을 해줘야 구하고자 하는 항을 구할 수 있다.
-> 그래서 for문의 범위를 n-1로 해주었다.
-> 연산을 마친 a 값을 가지고 계속해서 연산하여 다음 항을 구해야 하기 때문에 결과값을 a에 또 넣어주었다.
'Algorithms > Code Up 100제' 카테고리의 다른 글
Code Up 기초 100제 - 1093 (0) | 2020.01.14 |
---|---|
Code Up 기초 100제 - 1092 (0) | 2020.01.13 |
Code Up 기초 100제 - 1090 (0) | 2020.01.13 |
Code Up 기초 100제 - 1089 (0) | 2020.01.13 |
Code Up 기초 100제 - 1088 (0) | 2020.01.13 |