【腾讯2015校园招聘技术类】第24题
来源:互联网 发布:索引超出数组界限 编辑:程序博客网 时间:2024/06/10 00:33
题目:请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串
36进制的规则为:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
举例说明:
1="0001"
10="000A"
20="000k"
35="000Z"
36="0010"
100="002S"
2000="01JK"
代码如下
#include<iostream>
using namespace std;
char* tenTo36(int key)
{
char *num36=new char[5];
num36[0]=num36[1]=num36[2]=num36[3]='0';
num36[4]='\0';
int i=3;
int tmp=key;
while(i>=0&&tmp>0)
{
num36[i--]=(tmp%36>9)?('A'+tmp%36-10):('0'+tmp%36);
tmp=tmp/36;
}
return num36;
}
int main(void)
{
cout<<"输入十进制数"<<endl;
int key;
cin>>key;
char * tmp=new char[5];
tmp=tenTo36(key);
printf("%s\n",tmp);
return 0;
}
上面这种方法是一个很通用的方法:
那么下面对上面算法改进,使其适应任何进制
#include<iostream>
using namespace std;
char* tenTo36(int key)
{
printf("您要变成几进制(2到36进制)?\n");
int scale;
scanf("%d",&scale);
if(scale>=2&&scale<=10)
{
char *num36=new char[9];
for(int i=0;i<=7;i++)
num36[i]='0';
num36[8]='\0';
int i=7;
int tmp=key;
while(i>=0&&tmp>0)
{
num36[i--]='0'+tmp%scale;
tmp=tmp/scale;
}
return num36;
}
else
{
char *num36=new char[5];
for(int i=0;i<=3;i++)
num36[i]='0';
num36[4]='\0';
int i=3;
int tmp=key;
while(i>=0&&tmp>0)
{
{
num36[i--]=(tmp%scale>9)?('A'+tmp%scale-10):('0'+tmp%scale);
tmp=tmp/scale;
}
}
return num36;
}
}
int main(void)
{
cout<<"输入十进制数"<<endl;
int key;
cin>>key;
char * tmp;
tmp=tenTo36(key);
printf("%s\n",tmp);
return 0;
}
- 【腾讯2015校园招聘技术类】第24题
- 腾讯2015校园招聘技术类研发笔试题
- 2015腾讯校园招聘技术类研发笔试题
- 2015腾讯校园招聘技术类研发笔试题
- 腾讯2013校园招聘技术类笔试题详解
- 腾讯2013校园招聘技术类笔试题详解
- 腾讯2014校园招聘技术类笔试题详解
- 腾讯2015校园招聘技术类研发笔试题第七题
- 腾讯2015校园招聘
- 腾讯技术类校园招聘笔试试题(A8卷)
- 腾讯技术类校园招聘笔试试题(A8卷)
- 虔诚的学习者 腾讯技术类校园招聘笔试试题
- 2014腾讯校园招聘实习技术类笔试题目
- 2014腾讯校园招聘实习技术类笔试题目
- 2014腾讯校园招聘实习技术类笔试题目
- 【第1题】360校园招聘2015届技术类笔试题
- 【第2题】360校园招聘2015届技术类笔试题
- 【第3题】360校园招聘2015届技术类笔试题
- 盘点当下虚拟现实技术之一:Unity+Oculus对比UE4+HTC vive
- Android小知识7
- Jquery显示隐藏特效
- AutoMapper用法
- opensuse13.2 xfs文件系统修复
- 【腾讯2015校园招聘技术类】第24题
- mitmproxy中libmproxy简单介绍
- HTTP长连接与短连接
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 陈怡暖:2015.5.19早间最强现货黄金白银操作建议
- multiple-media streaming on p2p overlay across oversea network
- 空密码访问共享
- Android开发之时间刻度盘
- 利用openssl实现字符串加密解密