알아가기+)
math.h 의 ceil()함수, float를 무조건 올림하여 인트형으로,
round()는 반올림
floor()는 내림
수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은
(1+2+3+4+5)
(4+5+6)
(7+8)
(15)
로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를 반환해 주면 됩니다.
#include<iostream>
using namespace std;
int expressions(int testCase)
{
int answer = 0;
for(int i=1;i<=testCase;i++)
{
int sum=0;
for(int k=i;k<=(testCase/2+1);k++)
{
sum+=k;
if(sum==testCase)
{
answer++;
break;
}
}
}
return answer+1; // + 자기자신
}
int main()
{
int testNo = 15;
int testAnswer = expressions(testNo);
// 아래는 테스트로 출력해 보기 위한 코드입니다.
cout<<testAnswer;
}
'OLD개발이야기 > 알고리즘 공부' 카테고리의 다른 글
C++/ double 소수점 자리 뒤 출력 /int string 으로 (1) | 2018.04.20 |
---|---|
알고리즘 공부 ) 프로그래머스 - 최대공약수와 최소공배수 C++ (0) | 2018.04.18 |
Vector사용법 (0) | 2018.02.22 |
프로그래머스 효진이 멀리 뛰기 C++ 알고리즘 연습 level3 (2) | 2018.02.21 |
프로그래머스 야근지수 C++알고리즘 연습 level3 (0) | 2018.02.21 |