当前位置:网站首页>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");
}
边栏推荐
猜你喜欢
您的登录IP不在管理员配置的登录掩码范围内
Qt随手笔记(三)在vs中使用QtCharts画折线图
After attaching to the process, the breakpoint displays "currently will not hit the breakpoint, and no symbols have been loaded for this document"
Jmeter配置元件之CSV数据文件设置
Windows下Redis哨兵模式搭建
2022 Shanghai safety officer C certificate examination questions and mock examination
小程序纪录
OFDM Lecture 16 - OFDM
登录模块用例编写
使用openLayer画箭头
随机推荐
服务器、客户端双认证
Your login IP is not within the login mask configured by the administrator
模板(三)
Qt随手笔记(二)Edit控件及float,QString转化、
Android implements the caching mechanism and caches multiple data types
MySql5.7.25源码安装记录
wap端微信h5支付,用于非微信浏览器
Great reward for interview questions
JS output diamond on the console
安卓 实现缓存机制,多种数据类型缓存
解决IE7 & IE8 存储cookie问题
csdn空格用什么表示
[shutter -- layout] detailed explanation of the use of align, center and padding
Add DLL
2020-12-29
微信小程序学习笔记2
nodejs中mysql的使用
设置视图动态图片
E. Two Small Strings
搜索模块用例编写