Programers:[3]n進数ゲーム
7855 ワード
[3次]n進ゲーム
コード#コード# #include <string>
#include <vector>
// 21:02 시작
using namespace std;
char number[18] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
/* 숫자 a를 n진법으로 변환 */
string change(int a, int n){
string str="";
if(a == 0) return to_string(0);
while(a != 0)
{
char ch = number[a%n];
a = a/n;
str = ch + str;
}
return str;
}
string solution(int n, int t, int m, int p) {
string answer = "";
// n진법 / 미리 t개 / 총 m명 / 튜브순서 p
int untill = m * t * 2; // 10진수 아래면 mt로 충분하지만 그 이상이 있으니 넉넉하게 2 곱함
string entire="";
/* 1부터 untill까지 n진법으로 변환한 string값을 entire에 더함! */
for(int i=0;i<=untill;i++)
{
string tmp = change(i,n);
entire += tmp;
}
/* 전체 문자열에서 튜브가 말할 t개를 answer에 삽입 */
for(int k=p-1;k<entire.length();k += m)
{
char tmp = entire[k];
answer += tmp;
t--;
if(t == 0) break;
}
return answer;
}
#include <string>
#include <vector>
// 21:02 시작
using namespace std;
char number[18] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
/* 숫자 a를 n진법으로 변환 */
string change(int a, int n){
string str="";
if(a == 0) return to_string(0);
while(a != 0)
{
char ch = number[a%n];
a = a/n;
str = ch + str;
}
return str;
}
string solution(int n, int t, int m, int p) {
string answer = "";
// n진법 / 미리 t개 / 총 m명 / 튜브순서 p
int untill = m * t * 2; // 10진수 아래면 mt로 충분하지만 그 이상이 있으니 넉넉하게 2 곱함
string entire="";
/* 1부터 untill까지 n진법으로 변환한 string값을 entire에 더함! */
for(int i=0;i<=untill;i++)
{
string tmp = change(i,n);
entire += tmp;
}
/* 전체 문자열에서 튜브가 말할 t개를 answer에 삽입 */
for(int k=p-1;k<entire.length();k += m)
{
char tmp = entire[k];
answer += tmp;
t--;
if(t == 0) break;
}
return answer;
}
number 배열
を利用する良い方法を学びます!Reference
この問題について(Programers:[3]n進数ゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@neity16/Programers-3차-n진수-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol