여러 사람이 순서대로 앉아서 숫자를 하나씩 차례대로 말한다. 규칙은 다음과 같다.
단 위의 게임을 k진수로 변환하여 진행한다. 다음과 같은 게임을 진행할 때 튜브가 말해야 하는 숫자를 주어진 갯수만큼 구하여라
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string locate ="0123456789ABCDEF"; //진수 변환 개념 참고
string change (int num, int binary){ //진수 변환 함수
string resurt;
if(num==0){
return "0";
}
while(num>0){
resurt=locate[num%binary]+resurt;
num/=binary;
}
return resurt;
}
string solution(int n, int t, int m, int p) {
string answer = "";
string temp; //진수 변환 결과 저장
int num=0;
for(int i=0; i<t; i++){ //answer에 들어가야할 순서에 따른 push
while(temp.size()<=p+(m*i)){ //temp의 크기가 작을 때만 새로운 정수를 진수 변환하여 저장한다.
temp+=change(num, n);
num++;
}
answer+=temp[(p-1)+(m*i)]; //answer에 순서에 맞게 저장
}
return answer;
}