1B数值转换为26进制
来源:互联网 发布:最新淘宝优惠券二维码 编辑:程序博客网 时间:2024/05/21 11:26
#include<stdio.h>//这个题目对于讲十进制转换成以A表示1的26进制需要注意..
#include<math.h>//最开始用转换为2进制的处理方法来处理..但是发现不行.
#include<iostream>//比如当数为52的时候.应该是AZ.52%26 == 0 这个应该是Z
#include<string.h>//然后52/26 = 2 ,这个就应该是B了..就错了...
#include<stdlib.h>//所以当能够被整除的时候..要特殊处理...0作为Z同时..
#include<vector>// 52/26 = 2 应该-1.最开始是用/27来试的.
const int inf = 0x3f3f3f;
using namespace std;
int main()
{
//48 -- 57
char a[1000];
int row,col,test;
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%s",a);
bool vis = 0;
bool type = 0;
for(int i = 0 ; i < strlen(a) ; i++)
{
if(a[i] <= '9')
vis = 1;
if(vis && a[i] > '9')
{
type = 1;
break;
}
}
if(type)
{
char y[1000],x[1000],tmp[1000];
memset(y,0,sizeof(y));
memset(x,0,sizeof(x));
memset(tmp,0,sizeof(tmp));
int t = 0,s = 0,ans = 0,mul = 1,res;
for(int i = 1 ; a[i] != 'C' ; i++)
{
x[t++] = a[i];
}
for(int i = t+2 ; i < strlen(a) ; i++)
{
y[s++] = a[i];
}
for(int i = s - 1 ; i >= 0 ; i--)
{
ans += ( y[i] - '0' ) * mul;
mul *= 10;
}
t = 0 ;
while(ans > 0)
{
res = (ans % 26);
if(res > 0)
{
res = 64 + res;
ans /= 26;
}
else
{
res = 90;
ans = ans/26;
ans--;
}
tmp[t++] = res ;
}
for(int i = strlen(tmp) - 1 ; i >= 0 ; i--)
{
if(tmp[i] >= 'A' && tmp[i] <= 'Z')
printf("%c",tmp[i]);
}
printf("%s",x);
printf("\n");
}
else
{
char ans[1000],x[1000];
memset(ans,0,sizeof(ans));
memset(x,0,sizeof(x));
int mul = 1 ,res = 0,t = 0,s = 0;
for(int i = 0 ; a[i] >= 'A' && a[i] <= 'Z'; i++)
{
ans[t++] = a[i];
}
for(int i = t ; i < strlen(a) ; i++)
{
x[s++] = a[i];
}
for(int i = strlen(ans) - 1 ; i >= 0 ; i--)
{
if(ans[i] >= 'A' && ans[i] <= 'Z')
{
res += (ans[i] - 'A' +1)*mul ;
mul *= 26;
}
}
printf("R");
printf("%s",x);
printf("C");
printf("%d\n",res);
}
}
}
}
#include<math.h>//最开始用转换为2进制的处理方法来处理..但是发现不行.
#include<iostream>//比如当数为52的时候.应该是AZ.52%26 == 0 这个应该是Z
#include<string.h>//然后52/26 = 2 ,这个就应该是B了..就错了...
#include<stdlib.h>//所以当能够被整除的时候..要特殊处理...0作为Z同时..
#include<vector>// 52/26 = 2 应该-1.最开始是用/27来试的.
const int inf = 0x3f3f3f;
using namespace std;
int main()
{
//48 -- 57
char a[1000];
int row,col,test;
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%s",a);
bool vis = 0;
bool type = 0;
for(int i = 0 ; i < strlen(a) ; i++)
{
if(a[i] <= '9')
vis = 1;
if(vis && a[i] > '9')
{
type = 1;
break;
}
}
if(type)
{
char y[1000],x[1000],tmp[1000];
memset(y,0,sizeof(y));
memset(x,0,sizeof(x));
memset(tmp,0,sizeof(tmp));
int t = 0,s = 0,ans = 0,mul = 1,res;
for(int i = 1 ; a[i] != 'C' ; i++)
{
x[t++] = a[i];
}
for(int i = t+2 ; i < strlen(a) ; i++)
{
y[s++] = a[i];
}
for(int i = s - 1 ; i >= 0 ; i--)
{
ans += ( y[i] - '0' ) * mul;
mul *= 10;
}
t = 0 ;
while(ans > 0)
{
res = (ans % 26);
if(res > 0)
{
res = 64 + res;
ans /= 26;
}
else
{
res = 90;
ans = ans/26;
ans--;
}
tmp[t++] = res ;
}
for(int i = strlen(tmp) - 1 ; i >= 0 ; i--)
{
if(tmp[i] >= 'A' && tmp[i] <= 'Z')
printf("%c",tmp[i]);
}
printf("%s",x);
printf("\n");
}
else
{
char ans[1000],x[1000];
memset(ans,0,sizeof(ans));
memset(x,0,sizeof(x));
int mul = 1 ,res = 0,t = 0,s = 0;
for(int i = 0 ; a[i] >= 'A' && a[i] <= 'Z'; i++)
{
ans[t++] = a[i];
}
for(int i = t ; i < strlen(a) ; i++)
{
x[s++] = a[i];
}
for(int i = strlen(ans) - 1 ; i >= 0 ; i--)
{
if(ans[i] >= 'A' && ans[i] <= 'Z')
{
res += (ans[i] - 'A' +1)*mul ;
mul *= 26;
}
}
printf("R");
printf("%s",x);
printf("C");
printf("%d\n",res);
}
}
}
}
- 1B数值转换为26进制
- 数值转换为字符换(1)
- 数值转换为十六进制
- 字符串转换为数值
- 数值转换为字符
- 字符串转换为数值
- ip转换为数值 数值转换为ip c++
- ip转换为数值 数值转换为ip c++
- 如何转换字符串为数值- -
- 如何转换字符串为数值- -
- 将字符串转换为数值
- 整型数值转换为枚举
- boolean转换为数值类型
- 输入输出--数值转换为字符串
- jquery 字符串转换为数值
- 字符串转换为数值函数
- 字符串转换为数值类型
- 数值转换为时间格式
- 中间商真的绕的开么
- 2011年10月11日晚,履行答应她的承诺。我打电话给妈妈,,哭了,从未如此痛彻心扉地哭过,在母亲的面前。
- 微软最近对外发布了必应翻译应用开发接口(API),Facebook成为第一批尝鲜者
- Problems for Beginners
- 您是真正的创业者吗?
- 1B数值转换为26进制
- 根据身份证号码生成生日和性别
- Linux Kernel源代码分析中的终极问题
- 《营销管理》-第7章-识别市场细分和目标市场
- 容器与元素应分别设计
- jQuery 参考手册1-jQuery 选择器
- 在 PHP 中使用命令行工具
- 感谢乔布斯-没有他,这个世界会不同
- 虚拟键码对照表与ASCII对照表的整理