프로그래머스 홀짝에 따라 다른 값 반환하기 문제 바로가기

header

숫자를 다루는 함수들은 <cmath> header에 담겨있다. 이번 문제에서는 제곱하는 함수가 필요했다. 물론 i*i 처럼 구현해도 되긴 하지만, 응용을 위해서 함수를 찾아보았다. pow()함수는 double pow (double base, double exponent);로 정의되는데, double 밑(base)과 double 지수(exponent)을 입력으로 받아 double 값을 출력한다.

내 풀이

if 문으로 홀짝을 나누고 각각에 맞게 구현해주면 끝이다.

#include <string>
#include <vector>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = 0;
    if (n%2 == 1){
        for (int i = 0; i<n/2+1; i++){
            answer += 2*i+1;
        } 
    } else {
        for (int i=0; i<n/2+1; i++){
            answer += pow(2*i, 2);
        }
    }
    return answer;
}

References