파이썬/코딩테스트

[코드업] 수 나열하기 - Python(파이썬)

대전집주인 2024. 3. 23. 16:01
728x90
SMALL

 

수열 1

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

예를 들어

1 4 7 10 13 16 19 22 25 ... 은

1부터 시작해 이전에 만든 수에 3을 더해 다음 수를 만든 수열이다.

이러한 것을 수학에서는 앞뒤 수들의 차이가 같다고 하여

등차(차이가 같다의 한문 말) 수열이라고 한다. (등차수열 : arithmetic progression/sequence)

수열을 알게 된 영일이는 갑자기 궁금해졌다.

"그럼.... 123번째 나오는 수는 뭘까?"

영일이는 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.

시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때

n번째 수를 출력하는 프로그램을 만들어보자.

나는 반복문을 통해 값을 비교하여 결과를 도출해 냈다.(수열 1, 수열 2, 수열3 방식은 동일하나 사칙연산만 다르게 사용하였다)

# 반인원수 받기
a, d, n = map(int, input().split())

result = a  # 최초 값
count = 0   # 횟수
while True:
    count += 1
    if count != 1:  # 처음 시작할때 수열 더하기 금지
        result += d

    if count == n:  # 총 횟수가 n 값과 동일하면 탈출
        break

print(result)

 

수열 2

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

예를 들어

2 6 18 54 162 486 ... 은

2부터 시작해 이전에 만든 수에 3을 곱해 다음 수를 만든 수열이다.

이러한 것을 수학에서는 앞뒤 수들의 비율이 같다고 하여

등비(비율이 같다의 한문 말) 수열이라고 한다. (등비수열 : geometric progression/sequence)

등비 수열을 알게된 영일이는 갑자기 궁금해졌다.

"그럼.... 13번째 나오는 수는 뭘까?"

영일이는 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.

시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때

n번째 수를 출력하는 프로그램을 만들어보자.

 

# 반인원수 받기
a, d, n = map(int, input().split())

result = a  # 최초 값
count = 0   # 횟수
while True:
    count += 1
    if count != 1:  # 처음 시작할때 수열 더하기 금지
        result *= d

    if count == n:  # 총 횟수가 n 값과 동일하면 탈출
        break

print(result)

 

수열3

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

예를 들어

1 -1 3 -5 11 -21 43 ... 은

1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.

이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다.

"그럼.... 13번째 나오는 수는 뭘까?"

영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다...

그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,

n번째 수를 출력하는 프로그램을 만들어보자.

 

# 반인원수 받기
a, m, d, n = map(int, input().split())

result = a  # 최초 값
count = 0   # 횟수
while True:
    count += 1
    if count != 1:  # 처음 시작할때 수열 더하기 금지
        result *= m
        result += d

    if count == n:  # 총 횟수가 n 값과 동일하면 탈출
        break

print(result)
728x90
LIST