문제 링크입니다: http://www.codewars.com/kata/55ab4f980f2d576c070000f4/train/cpp
직접 그려가면서 하면 정말 간단한 문제입니다.
이런식으로 규칙이 있기 때문입니다.
/*
8*8 체스보드에서 친구와 게임을 하고 있다.
첫번째 열에는 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9
두번째 열에는 1/3, 2/4, 3/5, 4/6, 5/7, 6/8, 7/9, 8/10
세번재 열에는 1/4, 2/5, 3/6, 4/7, 5/8, 6/9, 7/10, 8/11
마지막 열에는 1/9, 2/10, 3/11, 4/12, 5/13, 6/14, 7/15, 8/16
체스보드에 모든 숫자가 입력되었다면 게임 참가자들은 모두 동전을 던진다.
앞면이 나오면 체스보드에 적혀있는 합만큼 돈을 받는다.
n이 주어졌을 때 n*n 체스보드에서 게임을 진행한다고 한다.
이 때 받아야하는 돈을 출력하시오
*/
#include <iostream>
#include <string>
using namespace std;
class Suite2
{
public:
static string game(unsigned long long n);
};
string Suite2::game(unsigned long long n)
{
string result;
long long square = n*n;
result += "[";
if (n % 2) //홀수면 분수
{
result += to_string(square);
result += ", ";
result += to_string(2);
}
else //짝수면 정수
result += to_string(square / 2);
result += "]";
return result;
}
int main(void)
{
cout << Suite2::game(0) << endl;
cout << Suite2::game(1) << endl;
cout << Suite2::game(5014) << endl;
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > codewars' 카테고리의 다른 글
codewars: Fun with trees: is perfect (0) | 2018.02.06 |
---|---|
codewars Validate Credit Card Number (0) | 2018.02.01 |
codewars: Tank Truck (0) | 2018.01.30 |
codewars: Statistics for an Athletic Association (0) | 2018.01.30 |
codewars: Simple Encryption #1 - Alternating Split (0) | 2018.01.30 |