프로그래머스 C++

프로그래머스 숫자의 표현 C++

Srff5123 2024. 11. 4. 21:19
728x90

연속된 자연수의 값으로 n을 표현하는 방법이 몇가지 인지 알아내는 문제이다.

 

연속된 자연수의 정의는 

위의 식과 같은 형태로 n개의 자연수를 의미한다.

여기서 a는 시작숫자, n은 연속된 숫자의 개수이다.

 

이를 이용해 합의 공식을 세우면

이런식으로 표현할 수 있으며 정리하면

이와 같이 나오게 되고, 이를 n개의 자연수의 합 공식으로 만들면

이렇게 짜여진다.

이를 활용하여 문제를 풀었다.

for문을 통해 

m은 연속된 자연수의 개수이며, m * (m - 1) / 2 는 m개의 자연수의 합을 나타내는 식이다.

 

예를 들면 m이 3일경우 1 + 2 + 3 = 6임을 구하게된다.

 

이를 반복하며 m개의 자연수의 합이 n보다 작거나 같아질 동안 실행한다. 

 

다음 if문을 통해

n - (m * (m - 1) / 2 )의 해당식에서 m을 나누었을떄 0이 나오는 값이 n을 표현한 연속된 자연수의 합으로

count++해주고

이를 반복해 합산하여 리턴하여준다.

 

728x90