藍橋 Excel地址轉換
阿新 • • 發佈:2019-02-11
Excel是最常用的辦公軟體。每個單元格都有唯一的地址表示。比如:第12行第4列表示為:“D12”,第5行第255列表示為“IU5”。
事實上,Excel提供了兩種地址表示方法,還有一種表示法叫做RC格式地址。 第12行第4列表示為:“R12C4”,第5行第255列表示為“R5C255”。
你的任務是:編寫程式,實現從RC地址格式到常規地址格式的轉換。
【輸入、輸出格式要求】
使用者先輸入一個整數n(n<100),表示接下來有n行輸入資料。
接著輸入的n行資料是RC格式的Excel單元格地址表示法。
程式則輸出n行資料,每行是轉換後的常規地址表示法。
例如:使用者輸入:
2
R12C4
R5C255
則程式應該輸出:
D12
IU5
C26 —> Z 26%26=0 能整除得到Z
C27->AA27%26=1 得到A,27/26=1,得到A
C52-〉AZ52%26=0 得到Z ,(52-1)/26=1,1%26==1 得到A
C53->BA53%26=1 得到A, 53/26=2 2%26==2得到B
#include<iostream> #include<string.h> #include<cstdio> using namespace std; int main() { int n,i,j,k,x,y,t1,t2; char ch[100],str[100]; cin>>n; getchar(); while (n--) { gets(str); x=y=k=0; for (i=1; str[i]!='C';i++) { x = x*10+(str[i]-'0'); } for (j=i+1; str[j]; j++) { y = y*10+(str[j]-'0'); } while (y) { if (y%26==0) { ch[k++] = 'Z'; y = (y-1)/26; } else { ch[k++] = y%26-1+'A'; y = y/26; } } for (i=k-1; i>=0; i--) { cout<<ch[i]; } cout<<x<<endl; } return 0; }