반응형

피보나치


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]
 
= 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('공차 : '))
= 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('공비 : '))
= 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
 
= 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

















반응형