日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

nyist 303 序号互换

發(fā)布時(shí)間:2025/7/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyist 303 序号互换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序號(hào)互換

時(shí)間限制:1000 ms ?|? 內(nèi)存限制:65535 KB 難度:2 描述

Dr.Kong設(shè)計(jì)了一個(gè)聰明的機(jī)器人卡多,卡多會(huì)對(duì)電子表格中的單元格坐標(biāo)快速計(jì)算出來(lái)。單元格的行坐標(biāo)是由數(shù)字編號(hào)的數(shù)字序號(hào),而列坐標(biāo)使用字母序號(hào)。觀察字母序號(hào),發(fā)現(xiàn)第1列到第26列的字母序號(hào)分別為A,B,…,Z,接著,第27列序號(hào)為AA,第28列為AB,依此類推。

若給Dr.Kong的機(jī)器人卡多一個(gè)數(shù)字序號(hào)(比如32),它能很快算出等價(jià)的字母序號(hào)(即AF),若給機(jī)器人一個(gè)字母序號(hào)(比如AA)),它也能很快算出等價(jià)的數(shù)字序號(hào)(27),你能不能與卡多比試比試,看誰(shuí)能算得更快更準(zhǔn)確。

輸入
第一行: N 表示有多少組測(cè)試數(shù)據(jù)。
接下來(lái)有N行, 每行或者是一個(gè)正整數(shù),或者是一個(gè)僅由大寫字母組成的字符串。
輸入保證,所有數(shù)字序號(hào)和字母序號(hào)對(duì)應(yīng)的數(shù)字序號(hào)均 ≤ 2*10^9
輸出
對(duì)于每一行測(cè)試數(shù)據(jù),輸出一行。如果輸入為一個(gè)正整數(shù)序號(hào),則輸出等價(jià)的字母序號(hào);如果輸入為字符串,則輸出等價(jià)的數(shù)字序號(hào)。
樣例輸入
3 27 G AA
樣例輸出
AA 7 27


代碼:
#include <stdio.h>
#include <string.h>
#include <math.h>

int a[10];

int char_int(char ch[])
{
??? int i = 0;
??? int sum = 0;
??? for(i = 0; i < strlen(ch); i++)
????? {
????????? sum = sum * 10 + ( (int)ch[i] - 48);
????? }
??? return sum;
}

void int_print(char ch[])
{
??? int x = char_int(ch);
??? int i = 0;
??? while(x)
??? {
??????? if(x%26 != 0)
?? ??? ?{
?? ??? ??? ?a[i] = x % 26;
?? ??? ??? ?x /= 26;
??????? }
?? ??? ?else
?? ??? ?{
?? ??? ??? ?a[i] = 26;
?? ??? ??? ?x = x/26 - 1;
?? ??? ?}
??????? ++i;
??? }
? int j = 0;
? for(j = i-1; j>=0; j--)
?? {
??????????? printf("%c",a[j] + 64);
?? }
?? printf("\n");
}

void char_print(char ch[])
{
??? int i;
??? int k = 0;
??? int sum = 0;
??? for(i = strlen(ch)-1; i >= 0; i--)
??????? {
??????????? sum += ((int)ch[i]-64) * pow(26,k);
??????????? k++;
??????? }
???????? printf("%d\n",sum);
}

int main()
{
??? int n;
??? scanf("%d",&n);
??? while(n--)
??? {
??????? char ch[20];
??????? scanf("%s",ch);
??????? if(ch[0]>='A' && ch[0]<='Z')
??????????? char_print(ch);
??????? else
??????????? int_print(ch);
??? }
??? return 0;

}
字符轉(zhuǎn)數(shù)字很簡(jiǎn)單,那個(gè)字符轉(zhuǎn)數(shù)字就是考慮一下那個(gè)最后一個(gè)是Z的情況這樣就好解決了


轉(zhuǎn)載于:https://www.cnblogs.com/yyroom/archive/2013/03/02/2940516.html

總結(jié)

以上是生活随笔為你收集整理的nyist 303 序号互换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。