알고리즘/BOJ

백준 1500번 최대 곱

꾸준함. 2018. 4. 29. 12:32

문제 링크입니다: https://www.acmicpc.net/problem/1500


고등학교 수학을 배웠다면 상식적으로 곱하는 숫자들끼리의 차가 적을수록 곱이 커지는 것을 알고 있습니다.

따라서 아래와 같이 코드를 작성했습니다.


#include <iostream>

using namespace std;

 

long long S, K;

 

//곱하는 숫자들의 차가 적을수록 결과가 커진다

long long maxMultiple(void)

{

        long long result = 1;

        long long multiplier = S / K;

        long long cnt = S - (multiplier * K); //multiplier+1을 곱하는 횟수

 

        //multiplier 곱하는 횟수 = K - cnt

        for (int i = 0; i < K - cnt; i++)

                 result *= multiplier;

        //나머지는 multiplier+1 을 곱한다

        for (int i = 0; i < cnt; i++)

                 result *= (multiplier + 1);

        return result;

}

 

int main(void)

{

        cin >> S >> K;

 

        cout << maxMultiple() << endl;

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 2178번 미로 탐색  (2) 2018.04.29
백준 11509번 풍선 맞추기  (0) 2018.04.29
백준 1541번 잃어버린 괄호  (3) 2018.04.28
백준 2421번 저금통  (0) 2018.04.28
백준 2780번 비밀번호  (0) 2018.04.27