기글 하드웨어 소프트웨어 포럼
정보처리기능사 공부를 시작했습니다만, 컴맹이라 뭐가 뭔지 잘 모릅니다.
일단 실기 책 맨 앞에 있는 문제 몇 개를 보고 제 나름대로 파이썬 코드 형태로 문제를 풀어 보았으니, 혹시 틀리거나 개선해야 할 부분이 있으면 부디 고수분들의 지도편달을 바랍니다.
문제 :
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)
알고리즘을 플로차트로 그려야 하던게 아니였던가요?;;
근데 나 정보처리기사(기능사나 기사나 시험 내용이 거기서 거기) 시험 쳤지만 저런 문제를 풀어 본적이 없는거 같은데?;;
흐름을 파악해서 외우면 풀기가 더 쉬울껍니다. 나오는 알고리즘이야 다 정해져 있어서요
이런 쓸데없는....
주석안달아놓으면 알아볼수없는 코딩이네요.
처라면 그냥 한 5배 줄수 많아지더라도. 완전 풀어서 작성할듯합니다.
답은 보기에 잘 작성하신듯합니다.
근데 솔직히 단순한 알고리즘인데 풀어서 설명할 구석이 있나요 (..) 실제로 저런 코드를 짜는 경우 그냥 변수명 잘 주고 while문 대신 for문으로 짜고 코드 시작하기 전에 용도만 대충 주석달아주면 되지 않을까 싶습니다만. 아니 애초에 저런 코드를 짤 일이 없긴 하지만 말이지요. 저는 오히려 저것보다 더 길게 짜두면 쓸데없이 읽을것만 많다고 뒷목잡을듯..
언어에선 쉽게 되던것들을 시험에선 못쓸수도 있고 표기법 차이도 있는관계로..