当前位置:网站首页>M-ary number STR to n-ary number
M-ary number STR to n-ary number
2022-07-26 09:32:00 【Run away】
’0‘ - ’9‘ Express :0 - 9
‘a’ - ‘z’ Express :36 - 61
’A‘ - ’Z‘ Express :10 - 35
Input m Hexadecimal number str, Output n Hexadecimal number another
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<vector>
#include<stack>
#include<queue>
#include<ctime>
#include<utility>
#include<map>
#define ll long long
#define ld long double
#define ull unsigned long long
using namespace std;
const int INF = 0x3f3f3f3f3f;
const double eps = 1e-6;
const int maxn = 10000010;
char str[maxn],another[maxn];
int ten[maxn];
int switchToTen(int m);
void switchToAnother(int k,int n);
int main()
{
int m,n,k;
cin>>m>>n>>str;
k = switchToTen(m);
switchToAnother(k,n);
return 0;
}
int switchToTen(int m)
{
int i,j,len,k,c;
len = strlen(str);
k = 1;
memset(ten,0,sizeof(ten));
for(int i = 0;i<len;i++){
for(int j=0;j<k;j++){
ten[j] *= m;
}
if(str[i]>='0'&&str[i]<='9'){
ten[0] += str[i]-'0';
}
else if(str[i]>='A'&&str[i]<='Z'){
ten[0] += str[i]-'A'+10;
}
else if(str[i]>='a'&&str[i]<='z'){
ten[0] += str[i]-'a'+36;
}
for(int j=c=0;j<k;j++){
ten[j] += c;
if(ten[j]>=10){
c = ten[j] / 10;
ten[j] %= 10;
}
else c = 0;
}
while(c){
ten[k++] = c % 10;
c /= 10;
}
}
int temp;
for(int i=0,j=k-1;i<j;i++,j--){
temp = ten[i];
ten[i] = ten[j];
ten[j] = temp;
}
return k;
}
void switchToAnother(int k,int n)
{
int sum,r,t,d;
sum = 1;
r = 0;
memset(another,0,sizeof(another));
while(sum){
sum = 0;
for(int i=0;i<k;i++){
d = ten[i] / n;
sum += d;
if(i==k-1){
t = ten[i] % n;
if(t>=0&&t<=9){
another[r] = t+'0';
}
else if(t>=10&&t<=35){
another[r] = t-10+'A';
}
else another[r] = t-36+'a';
r++;
}
else{
ten[i+1] += ten[i]%n * 10;
}
ten[i] = d;
}
}
for(int i=r-1;i>=0;i--){
printf("%c",another[i]);
}
printf("\n");
}
边栏推荐
猜你喜欢

MySql5.7.25源码安装记录

MySQL transaction

matlab中的AR模型短时预测交通流

2019 ICPC Asia Yinchuan Regional(水题题解)
![[shutter -- layout] detailed explanation of the use of align, center and padding](/img/01/c588f75313580063cf32cc01677600.jpg)
[shutter -- layout] detailed explanation of the use of align, center and padding

v-premission添加权限

Qt随手笔记(三)在vs中使用QtCharts画折线图

面试题目大赏

Arc GIS basic operation 3
![[MySQL] understand the important architecture of MySQL (I)](/img/89/5fb595b0112fac987626857b76f9a4.png)
[MySQL] understand the important architecture of MySQL (I)
随机推荐
nodejs服务后台执行(forever)
keepalived 实现mysql自动故障切换
Your login IP is not within the login mask configured by the administrator
莫队学习总结(二)
IIS网站配置
OnTap 9 file system limitations
ZXing简化版,转载
模板(三)
解决IE7 & IE8 存储cookie问题
Basic use of Arc GIS 2
wap端微信h5支付,用于非微信浏览器
C# 托管与非托管
How to add a PDB
matlab simulink实现模糊pid对中央空调时延温度控制系统控制
小程序纪录
添加dll
Wechat applet avatarcropper avatar clipping
高斯消元的应用
神经网络与深度学习-6- 支持向量机1 -PyTorch
js在控制台输出菱形