반응형
피보나치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #-*- coding: CP949 -*- # 피보나치 수열 n번째 항 찾기 # 1. n입력을 받고 배열 공간을 n+2만큼 할당해준다. # 2. dynamic programming을 이용한다. # 3. 각 리스트에 피보나치 일반항을 이용하여 연산을 해준다. # 4. 해당하는 n번째 값을 리턴 def seq3(n): global dp dp[0] = 0 dp[1] = 1 dp[2] = 1 for i in range(n+1)[3:]: dp[i] = dp[i-1] + dp[i-2] return dp[n] n = int(raw_input('n번째 피보나치 수 : ')) if n <= 0: print 'wrong input' else: dp = [0]*(n+2) print n,'번째 피보나치 수 결과 : ', seq3(n) // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
등차수열
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #-*- coding: CP949 -*- # 등차수열 n번째 항 찾기 # 1. 각각 입력을 받는다. # 2. seq1 등차수열 함수에서 초항, cnt = 1로 초기화한다. # 3. cnt == n이 될때까지 진행하고 조건이 만족되면 ans를 리턴한다. def seq1(start, difference, n): cnt = 1 ans = start while True: cnt += 1 ans += difference if cnt == n: return ans start = int(raw_input('초항 : ')) difference = int(raw_input('공차 : ')) n = int(raw_input('몇 번째 항 : ')) if n <= 0: print 'wrong input' else: print n, '번째 항의 값 :: ', seq1(start, difference, n) // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
등비수열
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #-*- coding: CP949 -*- # 등비수열 n번째 항 찾기 # 1. 각각 입력을 받는다. # 2. seq2 등비수열 함수에서 초항, cnt = 1로 초기화한다. # 3. cnt == n이 될때까지 진행하고 조건이 만족되면 ans를 리턴한다. def seq2(start, difference, n): cnt = 1 ans = start while True: cnt += 1 ans *= difference if cnt == n: return ans start = int(raw_input('초항 : ')) difference = int(raw_input('공비 : ')) n = int(raw_input('몇 번째 항 : ')) print n, '번째 항의 값 :: ', seq2(start, difference, n) // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
계차수열
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #-*- coding: CP949 -*- # 1,2,4,7,11,16으로 증가하는 n번째 값 찾기 # 1. n을 입력받는다. # 2. 계차수열을 위해 ans = 1로, diff = 1로, cnt = 1로 초기화 한다. # 3. ans += diff를 해주고 diff는 1씩 더해주며 cnt도 1씩더해준다. # 4. n == cnt가 될 때 break를 해주고 return ans를 해준다. def seq4(n): ans = 1 diff = 1 cnt = 1 while True: if n == cnt: break ans += diff diff += 1 cnt += 1 return ans n = int(raw_input('input n :: ')) if n <= 0: print 'wrong input' else: print 'ans :: ', seq4(n) // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Basic > Python' 카테고리의 다른 글
파이썬 GUI 라벨, 버튼 사용법 (0) | 2017.07.16 |
---|---|
파이썬 기본적인 클래스 예제 (0) | 2017.07.12 |
파이썬 sort, sorted 정렬 예제 (0) | 2017.07.12 |
파이썬 dictionary 전체 메소드 설명 및 예제 코드 (0) | 2017.07.12 |
파이썬 translate, punctuation을 이용한 단어 구분 (0) | 2017.07.12 |