BestCoder-Machine(三進位制-彩燈變換)
Machine
Accepts: 580
Submissions: 1890
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
問題描述
有一個機器,它有 m(2≤m≤30)m (2\leq m\leq 30)m(2≤m≤30) 個彩燈和一個按鈕。每按下按鈕時,最右邊的彩燈會發生一次變換。變換為: 1. 如果當前狀態為紅色,它將變成綠色; 2.如果當前狀態為綠色,它將變成藍色; 3.如果當前狀態為藍色,它將變成紅色,並且它左邊的彩燈(如果存在)也會發生一次變換。 初始狀態下所有的燈都是紅色的。 詢問按下按鈕 n(1≤n<263)n (1\leq n< {2}^{63})n(1≤n<263) 次以後各個彩燈的顏色。
輸入描述
輸入包含多組資料. 第一行有一個整數T(1≤T≤15)T (1\leq T\leq 15)T(1≤T≤15), 表示測試資料的組數. 對於每組資料: 唯一的一行包含2個整數 m(2≤m≤30)m (2\leq m\leq 30)m(2≤m≤30) 和 n(1≤n<263)n (1\leq n< {2}^{63})n(1≤n<263) 。
輸出描述
對於每組資料,輸出一個長度為mmm的字串,表示從左到右mmm個彩燈的顏色。 R代表紅色;G代表綠色;B代表藍色。
輸入樣例
2 3 1 2 3
輸出樣例
RRG GR 解題思路: 最後一位按照RGBRGBRGB……的順序改變,按照題目意思:
“3.如果當前狀態為藍色,它將變成紅色,並且它左邊的彩燈(如果存在)也會發生一次變換。” 所以從最後一位向前,例如倒數第二位按照RRRGGGBBBRRRGGGBBB的順序改變,即原問題就轉化為求nn的三進製表示的最低的mm位。
/*
* Copyright (c) 2016, 煙臺大學計算機與控制工程學院
* All rights reserved.
* 檔名稱:3.cpp
* 作 者:單昕昕
* 完成日期:2016年4月22日
* 版 本 號:v1.0
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
char p[3]= {'R','G','B'};
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
long long m,n,a[32];
cin>>m>>n;
int i;
for(i=m; i>=1; --i)
{
a[i]=n%3;
n/=3;
}
for(i=1; i<=m; i++)
cout<<p[a[i]];
cout<<endl;
}
return 0;
}
相關文章
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- Qt進位制轉換(十進位制轉十六進位制)QT
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 十六進位制轉換為八進位制
- 十六進位制轉換為十進位制
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 進位制換算
- 進位制轉換
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- lua之m進位制轉換為n進位制-任意進位制轉換演算法演算法
- JavaScript十進位制轉換為二進位制JavaScript
- shell 中轉換16進位制10進位制
- Oracle二進位制與十進位制轉換Oracle
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 十進位制與二進位制互相轉換指南
- 進位制均值-進位制轉換+最大公約數
- 二進位制轉十進位制快速轉換方法
- JavaScript 進位制轉換JavaScript
- 1.5進位制轉換
- 進位制的轉換
- 三分鐘熟悉進位制轉換與位運算
- 2進位制_8進位制_16進位制之間快速轉換的技巧.txt
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- 什麼是二進位制?二進位制如何轉換?
- 十進位制轉換任意進位制--鏈棧實現
- JavaScript中的多種進位制與進位制轉換JavaScript