Codeforces Spreadsheets
2017-06-26 21:51
225 查看
import java.util.Scanner;
public class Spreadsheets {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 0; i < n; i++) {
String string = scanner.next();
char[] ch = string.toCharArray();
int m = ch.length;
boolean flag = true;
if(ch[0] == 'R' && ch[1] - '0' >=1 && ch[1] - '0' <= 9) {
for(int j = 2; j < m; j++) {
if(ch[j] == 'C') {
flag = false;
}
}
if(!flag) {
module1(string);
} else {
module2(string);
}
} else {
module2(string);
}
}
}
public static void module1(String ch) {
//检索c的位置
int index = ch.indexOf('C');
String left = ch.substring(1, index);
String right = ch.substring(index+1);
int k = Integer.valueOf(right);
// System.out.println(k);
change(k);
System.out.println(str+left);
str = "";
}
public static void module2(String ch) {
int i = 0;
for(i =0 ; i < ch.length(); i++) {
if(ch.charAt(i) - '0' >=1 && ch.charAt(i) - '0' <= 9) {
break;
}
}
String left = ch.substring(0, i);
String right = ch.substring(i);
String ss = "R" + right + "C";
int l = left.length();
char[] cc = left.toCharArray();
int sum = 0;
for(int p = 0 ; p < l; p++) {
int k = cc[p] - 'A' + 1;
int temp = 1;
for(int m = 0; m < l-p-1; m++) {
temp *= 26;
}
sum += k * temp;
}
System.out.println(ss + String.valueOf(sum));
}
static String str = "";
public static void change(int k) {
if(k <= 26) {
str = (char)('A' + k -1) + str ;
return ;
}
if(k % 26 == 0) {
str = 'Z'+ str ;
k = k /26 - 1;
} else {
str =(char)('A' + (k % 26) - 1) + str;
// System.out.println(str);
k = k / 26;
}
change(k);
}
}
public class Spreadsheets {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 0; i < n; i++) {
String string = scanner.next();
char[] ch = string.toCharArray();
int m = ch.length;
boolean flag = true;
if(ch[0] == 'R' && ch[1] - '0' >=1 && ch[1] - '0' <= 9) {
for(int j = 2; j < m; j++) {
if(ch[j] == 'C') {
flag = false;
}
}
if(!flag) {
module1(string);
} else {
module2(string);
}
} else {
module2(string);
}
}
}
public static void module1(String ch) {
//检索c的位置
int index = ch.indexOf('C');
String left = ch.substring(1, index);
String right = ch.substring(index+1);
int k = Integer.valueOf(right);
// System.out.println(k);
change(k);
System.out.println(str+left);
str = "";
}
public static void module2(String ch) {
int i = 0;
for(i =0 ; i < ch.length(); i++) {
if(ch.charAt(i) - '0' >=1 && ch.charAt(i) - '0' <= 9) {
break;
}
}
String left = ch.substring(0, i);
String right = ch.substring(i);
String ss = "R" + right + "C";
int l = left.length();
char[] cc = left.toCharArray();
int sum = 0;
for(int p = 0 ; p < l; p++) {
int k = cc[p] - 'A' + 1;
int temp = 1;
for(int m = 0; m < l-p-1; m++) {
temp *= 26;
}
sum += k * temp;
}
System.out.println(ss + String.valueOf(sum));
}
static String str = "";
public static void change(int k) {
if(k <= 26) {
str = (char)('A' + k -1) + str ;
return ;
}
if(k % 26 == 0) {
str = 'Z'+ str ;
k = k /26 - 1;
} else {
str =(char)('A' + (k % 26) - 1) + str;
// System.out.println(str);
k = k / 26;
}
change(k);
}
}
相关文章推荐
- codeforces B. Spreadsheets 计算excel的行列
- codeforces B Spreadsheets
- codeforces——B. Spreadsheets
- Codeforces Beta Round #1 B Spreadsheets
- Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet(暴力)
- BW--ABAP code using BAPI's to load data into Cube from SpreadSheets
- Codeforces #401 (Div. 2) C. Alyona and Spreadsheet ( XJBX
- Codeforces Round #270 D. Design Tutorial: Inverse the Problem
- Codeforces Round #460 (Div. 2)-A. Supermarket
- Codeforces Round #Pi (Div. 2) C. Geometric Progression dp
- Educational Codeforces Round 9 总结
- Codeforces Round #369 (Div. 2) A B 两水题 编码能力
- Codeforces Round #284 (Div. 2): D. Name That Tune(概率DP)
- Codeforces Round #271 (Div. 2) B Worms 裸的二分查找
- B - Vacations codeforces_698A
- Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量
- 【Educational Codeforces Round 37 E】Connected Components?
- Codeforces Round #369 (Div. 2) C. Coloring Trees 动态规划
- Codeforces Educational Codeforces Round 37 E
- Codeforces Yaroslav and Time(最短路)