정보처리기능사 공부를 시작했습니다만, 컴맹이라 뭐가 뭔지 잘 모릅니다.
일단 실기 책 맨 앞에 있는 문제 몇 개를 보고 제 나름대로 파이썬 코드 형태로 문제를 풀어 보았으니, 혹시 틀리거나 개선해야 할 부분이 있으면 부디 고수분들의 지도편달을 바랍니다.


문제 :
1부터 100까지 자연수의 합을 구하는 알고리즘을 제시하라.


제 답 :

a = 0
i = 0

while i < 100:
    i = i + 1
    a = a + i

print(a)

문제 :
다음 등차 수열에 대하여 200번째 숫자까지의 합을 구하는 알고리즘을 제시하라.
2, 8, 14, 20, 26, 32, ...


제 답 :

a = 2
b = 8
c = b - a
d = 0
i = 0

while i < 200:
    i = i + 1
    d = d + a
    a = a + c

print(d)

문제 :
다음 등비 수열에 대하여 100번째 항까지의 합을 구하는 알고리즘을 제시하라.
2, 6, 18, 54, 162, 486, ...


제 답 :

a = 2
b = a
i = 1

while i < 100:
    i = i + 1
    a = a * 3
    b = b + a

print(b)

문제 :
다음 피보나치 수열에 대하여 100번째 항까지의 합을 구하는 알고리즘을 제시하라.
1, 1, 2, 3, 5, 8, 13, ...


제 답 :

a = 1
b = 1
c = 0
d = 0
i = 0

while i < 100:
    i = i + 1
    d = d + a
    c = a + b
    a = b
    b = c

print(d)

문제 :
1부터 100까지의 누승의 합 S = 1! + 2! + 3! + 4! + 5! + ... + 100! 을 구하여 출력하는 알고리즘을 제시하라(단, N!은 자연수 N에 대한 누승(Factorial)으로서 1부터 N까지의 곱을 말한다).


제 답 :

a = 1
b = 0
i = 0

while i < 100:
    i = i + 1
    a = a * i
    b = b + a

print(b)

문제 :
누승을 재귀호출로 구하려면?


제 답 :

def factorial(n):
    if 0 < n:
        return factorial(n-1) * n
    else:
        return 1

print(factorial(5))

문제 :
S = (100×1)² + (99×2)² + (98×3)² + ... + (2×99)² + (1×100)²의 합을 구하여 출력하는 알고리즘을 제시하라.


제 답 :

x = 100
a = x
b = 1
c = (a*b)*(a*b)
d = 0

while b < x:
    d = (a*b)*(a*b)
    c = c+d
    a = a-1
    b = b+1

print(c)

문제 :
S = 1 - 2 + 3 - 4 + 5 - 6 + ... - 100의 값을 구하여 출력하는 알고리즘을 제시하라.


제 답 :

odd = 0
even = 0
i = 0

while i < 100:
    i = i + 1
    if i % 2 == 0:
        even = even - i
    else:
        odd = odd + i

print(odd+even)

문제 :
다음과 같은 형태로 나타나는 수열의 합을 구하여 출력하는 알고리즘을 제시하라.
S = 1/(2×3) - 2/(3×4) + 3/(4×5) - 4/(5×6) + ... - 48/(49×50) + 49/(50×51)


제 답 :

odd = 0
even = 0
i = 0

while i < 49:
    i = i+1
    if i % 2 == 0:
        even = -(i/(i+1)*(i+2))
    else:
        odd = i/(i+1)*(i+2)

print(odd+even)