October
14th,
2017
수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은
(1+2+3+4+5)
(4+5+6)
(7+8)
(15)
로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를 반환해 주면 됩니다.
내 풀이
def expressions(num):
end = int(num / 2) + 1
# print(end)
count = 0
for start in range(1, end + 1):
matched = 0
for i in range(start, end + 1):
matched += i
# print('i : {} 현재값 : {}'.format(i, matched))
if matched > num:
break
if matched == num:
count += 1
# print(f'현재 count : {count}')
break
print('\n')
count += 1
return count
print(expressions(15))
다른사람의 풀이
def expressions(num):
answer = 0
for i in range(1, num + 1):
s = 0
while s < num:
s += i
i += 1
if s == num:
answer += 1
return answer
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(expressions(15));